反向分组.

我有一个 pandas 数据框,其中包含变量名称、每个变量的值以及count(显示该行的频率):


df = pd.DataFrame({'var':['A', 'B', 'C'], 'value':[10, 20, 30], 'count':[1,2,3]})


var  value  count

A    10     1

B    20     2

C    30     3

我想用来count获得这样的输出:


var  value

A    10

B    20

B    20

C    30

C    30

C    30

最好的方法是什么?


函数式编程
浏览 88回答 2
2回答

精慕HU

您可以使用index.repeat:i = df.index.repeat(df['count'])d = df.loc[i, :'value'].reset_index(drop=True)   var  value0   A     101   B     202   B     203   C     304   C     305   C     30

慕码人2483693

使用repeatwithreindex来表达这一短句:df.reindex(df.index.repeat(df['count']))输出:  var  value  count0   A     10      11   B     20      21   B     20      22   C     30      32   C     30      32   C     30      3或者消除“计数”列:df[['var','value']].reindex(df.index.repeat(df['count']))或者df.reindex(df.index.repeat(df['count'])).drop('count', axis=1)输出:  var  value0   A     101   B     201   B     202   C     302   C     302   C     30
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python