python - pd DataFrame 中列的列名称

标签 python pandas dataframe data-science reshape

我有一个 pandas DataFrame,我想 reshape 它。

  Country       1991  1992  1993  
Deutschland      1     2     3
Griechenland     4     7     0

如何创建一个如下所示的新 DataFrame:

      Country       Year   Value
    Deutschland     1991     1
    Deutschland     1992     2
    Deutschland     1993     3
    Griechenland    1991     4
    Griechenland    1992     7
    Griechenland    1993     0

最佳答案

使用melt(然后按国家和年份对值进行排序并重置索引):

(df.melt('Country', var_name='Year', value_name='Value')
   .sort_values(['Country', 'Year'])
   .reset_index(drop=True))

输出:

        Country  Year  Value
0   Deutschland  1991      1
1   Deutschland  1992      2
2   Deutschland  1993      3
3  Griechenland  1991      4
4  Griechenland  1992      7
5  Griechenland  1993      0

关于python - pd DataFrame 中列的列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55171153/

相关文章:

python - 如何使用 SQLAlchemy 表达式语言编写条件子句?

python - pandas 随机播放最后 N 行

python - 检查 pandas df.iterrows() 中的最后一行是否

python - 将数据框的列追加到列表中

r - 如何将数据框分成两列并根据组更有效地计算行数

python - Pyspark 中的 None/== vs Null/isNull?

python - 如何使用 wxPython 创建一个信息图标

python - 找到两列之间差异最大的行

python - 使用 groupby 和合并在 Pandas 中创建新列

python - 我如何转置这些数据以获得类似的东西