如何将熊猫中的多行与共享的列值合并

时间:2019-08-17 03:40:42

标签: python pandas dataframe

我正在使用熊猫读取json对象并将数据输出为csv文件。

目前,我已使用以下数据生成一个数据框: Initial data

有几百行,并且每两行共享相同的两个unique_key值。我想将具有相同unique_key值的行聚合为一行,然后将数据转换为csv文件。

我试图将数据复制到两个相同的数据帧中并对其进行外部联接:


df_1 = pd.DataFrame(data_list)
df_2 = pd.DataFrame(data_list)
pd.merge(df_1, df_2, how='outer', on=[unique_key_1,unique_key_2], sort=True)

对于“操作方法”字段,我尝试了所有可用的选项,它们要么复制行,要么创建名称如下的列: COL_1_x COL_1_y

这是我想要实现的输出:

Desired Result

我想知道这个合并问题是否有可能的解决方案?

我认为groupby无效,因为我需要将数据帧导出到csv文件中。

此外,我不确定是否将数据复制到两个相同的数据帧中并进行外部联接是正确的方法。

高度赞赏任何可行的答案!

1 个答案:

答案 0 :(得分:0)

我相信您正在寻找的是groupby:

import numpy as np
import pandas as pd
data = pd.DataFrame([[1,5,10,np.nan,5,np.nan],[2,1,10,np.nan,5,np.nan],[1,5,np.nan,1,np.nan,-10],[2,1,np.nan,1,np.nan,-10]],columns=['u1','u2','c1','c2','c3','c4'])
df = data.groupby(['u1','u2'])['c1','c2','c3','c4'].sum().reset_index()