【问题标题】:Combining two pandas dataframes based on column AND row VALUES基于列和行值组合两个熊猫数据框
【发布时间】:2020-11-18 02:14:05
【问题描述】:

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

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

例如,我有我的第一个 df 的这张图片:

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

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

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    我认为您想要做的是将第二个数据框转换为每个年/县组合都有一行,然后您可以使用左连接来组合两者。我相信 ```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"
    )
    

    【讨论】:

    • 谢谢!这就是我要找的方法!
    • @Cansu_Mac 很高兴它成功了!如果您发现该答案有帮助,您可以选择“将答案标记为最佳”,这让我更有信心。
    猜你喜欢
    • 2021-05-29
    • 2018-04-23
    • 2021-04-18
    • 1970-01-01
    • 2020-11-18
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    相关资源
    最近更新 更多