【问题标题】:How to transform a Python dataframe to a different format?如何将 Python 数据框转换为不同的格式?
【发布时间】:2019-07-16 19:50:25
【问题描述】:

我只需要帮助将 python 数据框转换为不同的格式。

我的输入文件:

country     1990    1991    1992
Cambodia    65.4    65.7    66.2
Cameroon    63.9    63.7    64.7
Canada      98.6    99.6    99.6
Cape Verde  77.7    77      76.6

我想要的输出文件:

Year    country     values
1990    Cambodia    65.4
1990    Cameroon    63.9
1990    Canada      98.6
1990    Cape Verde  77.7
1991    Cambodia    65.7
1991    Cameroon    63.7
1991    Canada      99.6
1991    Cape Verde  77
1992    Cambodia    66.2
1992    Cameroon    64.7
1992    Canada      99.6
1992    Cape Verde  76.6

转换后,我想添加其他列并执行更新,然后将其保存到csv 文件中。不知道怎么做。

【问题讨论】:

    标签: python dataframe transform dataformat


    【解决方案1】:

    如果没有正确的格式,很难阅读您的表格,但是您是否尝试过使用转置功能?

    就像“df.T”

    编辑:

    好的,我明白了。您需要做的是融化并旋转您的 DataFrame。

    https://pandas.pydata.org/pandas-docs/stable/user_guide/reshaping.html

    编辑 2:

    试试pd.melt(df,var_name=“Year”)

    编辑 3:

    要合并两个数据框,请尝试 pd.merge(df1,df2,on=["Year","Country"]) 其中 df2 包含年份、国家和您想要的任何其他列。

    【讨论】:

    • 谢谢。是的,我考虑过 TRANSPOSE,但它不是我正在寻找的格式。它是数据的重新格式化,而不是行和列的交换。
    • 试试 pd.melt(df,var_name="Year")
    • 您可以看到预期的输出文件有重复的“年份”和“国家”,但值是唯一的。
    • 谢谢杰克。我可以试试 MELT 功能。
    • 嗨,杰克,我想 MELT 就是我要找的。还有一个问题,如果我想与另一个具有相同“年份”和“国家”的文件合并,我该如何匹配 Dataframe,然后从其他文件中添加一个新列(或多个列)?简而言之,我想 MELT 然后 MERGE 与其他文件中的数据帧,当然还有其他列。
    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2017-11-01
    • 2021-04-25
    相关资源
    最近更新 更多