我正在尝试转换DataFrame,这样一些行将被复制给定的次数。例如:
df=pd.DataFrame({'class':['A','B','C'],'count':[1,0,2]})
班级人数
0 A 1
1 B 0
2 C 2
应转变为:
类
0 A
1 C
2 C
这与使用计数函数的聚合相反。有没有一种简单的方法可以在pandas中实现它(不使用for循环或列表理解)
一种可能是允许DataFrame.applymap函数返回多行(类似于GroupBy的apply方法)。然而,我认为现在在熊猫身上是不可能的
您可以使用groupby:
def f(组):
行=组。irow(0)
返回数据帧({'class':[row['class']]*row['count']})
df.groupby('class',group\u key=False)。应用(f)
所以你得到了
[25]on
:df.groupby('class',group_key=False)。应用(f)
Output[25]:
班
0 A
0摄氏度
1 C
您可以随意修改结果的索引