我正在使用熊猫读取json对象并将数据输出为csv文件。
有几百行,并且每两行共享相同的两个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
这是我想要实现的输出:
我想知道这个合并问题是否有可能的解决方案?
我认为groupby无效,因为我需要将数据帧导出到csv文件中。
此外,我不确定是否将数据复制到两个相同的数据帧中并进行外部联接是正确的方法。
高度赞赏任何可行的答案!
答案 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()