我有两个数据帧,我想创建一个新的数据帧,其中将包括两个源数据帧的所有唯一列以及公共列的聚合。
这些是两个示例:
这是结果:
所有列索引都应匹配以便进行汇总。
我写了以下代码:
String messageFromQueue = new String(msg);
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
Object genericObject = objectMapper.readValue(messageFromQueue, new TypeReference<Object>(){});
System.out.println("let's see object"+genericObject);
if(genericObject instanceof CollectionObject)
System.out.println("turned out to be collectionObject "+genericObject);
但是,我在以下行中收到错误消息:
df_all = pd.DataFrame
for dfColumn in df_1:
if dfColumn in df_2.columns:
df_all[dfColumn] = df_1.loc[:, dfColumn].add(df_2.loc[:, dfColumn])
else:
df_all[dfColumn] = df_1[dfColumn]
for dfColumn in df_2:
if dfColumn not in df_all.columns:
df_all[dfColumn] = df_2[dfColumn]
当我尝试将值分配给df_all [dfColumn]
它使我为Python所具有的所有不同可能性而疯狂。
但是我找不到一个可以使它工作。
感谢您的帮助和时间。
答案 0 :(得分:0)
实际上
我只能通过以下方式修复它:
df_all = pd.concat([df_1, df_2], axis=1)
df_all = df_all.groupby(level=[0, 1, 2], axis=1).sum()
是否可以用level=[0, 1, 2]
之类的东西来代替level=df_all.columns.levels
?