我有一个数据帧,在清理和合并之后最终处于我有多个具有相同索引值的行的状态。
我需要合并这些重复的行并输出一个数据帧,每个重复项运行都有一行。
在使用数据帧时,感觉它应该是一个标准操作,但我似乎无法解决如何让Pandas这样做。
我找到的最佳答案是:Merge two rows in the same Dataframe if their index is the same?
然而,那里提出的解决方案结束了我的" groupby"对象而不是数据帧。由于我想在框架上进行进一步的分组,我不知道如何继续。
pandas中的方法中是否有标准函数来压缩数据帧,其中多行共享相同的索引,返回一个新的数据帧?
例如:
visits revenue product-type
product1 200 50 stockings
product1 50 100 #n/a
product2 150 20 toy
... .. .. ..
到
visits revenue product-type
product1 250 150 stockings
product2 150 20 toy
... .. .. ..
答案 0 :(得分:2)
您可index
print (df.groupby(level=0).agg({'visits':sum,'revenue':sum,'product-type':'first'}))
visits revenue product-type
product1 250 150 stockings
product2 150 20 toy
然后groupby
:
join
最后一列可能更好的功能是print (df.groupby(level=0).agg({'visits':sum,
'revenue':sum,
'product-type': lambda x: ''.join(x.fillna(''))}))
visits revenue product-type
product1 250 150 stockings
product2 150 20 toy
- 您的数据不会丢失,(aggregate
仅获取第一个值,其他数据将被删除):
sum
如果仅使用print (df.groupby(level=0).sum())
visits revenue
product1 250 150
product2 150 20
,则会删除最后一列 - first
:
var facebook_banner = new Canvas_to_img('fb-banner', $('.banner-container'), 'http://localhost:1234/images/mainsite5/bb-fb-cover.jpg', 315, 851, content_areas);