合并数据框中的重复指标

时间:2016-06-15 13:15:01

标签: python-3.x pandas merge ipython

我有一个数据帧,在清理和合并之后最终处于我有多个具有相同索引值的行的状态。

我需要合并这些重复的行并输出一个数据帧,每个重复项运行都有一行。

在使用数据帧时,感觉它应该是一个标准操作,但我似乎无法解决如何让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
     ...       ..       ..           ..

1 个答案:

答案 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);