在我开始之前,我已经找到了类似的问题,并尝试了相应的答案,然而,我仍然遇到了一个问题,我不知道为什么。
我有6个数据帧。我想要一个结果数据框架,根据它们的共同索引列国家,将所有这6合并为一个。需要注意的是:数据帧有不同的行数,有些国家的数据帧没有相应的值,导致NaN。
以下是我尝试过的:
data_frames = [WorldPopulation_df, WorldEconomy_df, WorldEducation_df, WorldAggression_df, WorldCorruption_df, WorldCyberCapabilities_df]
df_merged = reduce(lambda left,right: pd.merge(left,right,on=['Country'], how = 'outer'), data_frames)当最终的结果数据帧将错误的值与错误的国家配对时,这是行不通的。有什么建议吗?
发布于 2022-07-10 01:01:37
让我们看看,当您从键中添加新列时,使用"pd.merge“。如果您有6个列数相同的数据文件,按照相同的顺序,您可以尝试如下:
columns_order = ['country', 'column_1']
concat_ = pd.concat(
[data_1[columns_order], data_2[columns_order], data_3[columns_order],
data_4[columns_order], data_5[columns_order], data_6[columns_order]],
ignore_index=True,
axis=0
)从这里开始,如果您想要"country“列的单个值,可以将组by应用到它:
concat_.groupby(by=['country']).agg({'column_1': max}).reset_index()https://stackoverflow.com/questions/72925436
复制相似问题