Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在数据帧内合并重复标记_Python 3.x_Pandas_Merge_Ipython - Fatal编程技术网

Python 3.x 在数据帧内合并重复标记

Python 3.x 在数据帧内合并重复标记,python-3.x,pandas,merge,ipython,Python 3.x,Pandas,Merge,Ipython,我有一个单独的数据帧,在清理和合并之后,它最终处于一种状态,我有多个具有相同索引值的行 我需要合并这些重复的行,并得到一个数据帧,其中每运行一次重复都有一行 在处理数据帧时,这感觉应该是一个标准操作,但我似乎不知道如何让熊猫做到这一点 我找到的最好答案是: 然而,在那里提出的解决方案以“groupby”对象而不是数据帧结束了我。因为我想在画面上做进一步的分组,所以我不知道如何继续 pandas中的方法中是否有标准函数用于压缩多行共享相同索引的数据帧,从而返回新的数据帧 例: 到 您可以通过索引,

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

我需要合并这些重复的行,并得到一个数据帧,其中每运行一次重复都有一行

在处理数据帧时,这感觉应该是一个标准操作,但我似乎不知道如何让熊猫做到这一点

我找到的最好答案是:

然而,在那里提出的解决方案以“groupby”对象而不是数据帧结束了我。因为我想在画面上做进一步的分组,所以我不知道如何继续

pandas中的方法中是否有标准函数用于压缩多行共享相同索引的数据帧,从而返回新的数据帧

例:

您可以通过
索引
,然后:

最后一列的更好功能可能是
join
-您的数据不会丢失(只取第一个值,其他数据会被删除):

如果仅使用
求和
,则删除最后一列-:

           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
     ...       ..       ..           ..
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
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
print (df.groupby(level=0).sum())
          visits  revenue
product1     250      150
product2     150       20