2 回答

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個贊
您可以使用index.repeat:
i = df.index.repeat(df['count'])
d = df.loc[i, :'value'].reset_index(drop=True)
var value
0 A 10
1 B 20
2 B 20
3 C 30
4 C 30
5 C 30

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個贊
使用repeatwithreindex來表達(dá)這一短句:
df.reindex(df.index.repeat(df['count']))
輸出:
var value count
0 A 10 1
1 B 20 2
1 B 20 2
2 C 30 3
2 C 30 3
2 C 30 3
或者消除“計(jì)數(shù)”列:
df[['var','value']].reindex(df.index.repeat(df['count']))
或者
df.reindex(df.index.repeat(df['count'])).drop('count', axis=1)
輸出:
var value
0 A 10
1 B 20
1 B 20
2 C 30
2 C 30
2 C 30
添加回答
舉報(bào)