2 回答
精慕HU
TA贡献1845条经验 获得超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
慕码人2483693
TA贡献1860条经验 获得超9个赞
使用repeatwithreindex来表达这一短句:
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
或者消除“计数”列:
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
添加回答
举报
0/150
提交
取消