首页 > 解决方案 > 基于列和行值组合两个熊猫数据框

问题描述

首先,我以前没有发现这个问题 - 可能是因为我没有使用正确的词来问它。因此,如果有人问过,请向那个方向发送我。

如何根据列和行组合两个熊猫数据框。我的主要数据框有一列“年”和一列“县”等。理想情况下,我想从下面的第二个数据框中添加另一列“百分比”。

例如,我有我的第一个 df 的图像:

主df

我有另一个具有相同“年”列的数据框,并且每个其他列名都是原始“主”数据框的“县”列中的字符串值:

第二个df

如何以将另一列添加到“主 df”的方式组合这两个数据框?首先将第二个数据框置于包含三列的格式中会有所帮助:“年份”、“县”和“百分比”。如果有人可以帮助我完成这部分,我可以合并它。

标签: pythonpandasdataframe

解决方案


我认为您要做的是将第二个数据框转换为每个年/县组合都有一行,然后您可以使用左连接将两者结合起来。我相信 ```melt`` 方法会做这种转变。尝试这个:

melted_second_df = second_df.melt(id_vars=["year"], var_name="county", value_name="percent")
combined_df = first_df.merge(
    right=melted_second_df,
    on=["year", "county"],
    how="left"
)

推荐阅读