【问题标题】:How do I merge columns modifying the data on a Dataframe如何合并修改数据框上数据的列
【发布时间】:2021-07-29 23:51:58
【问题描述】:

社区!

我有这个数据框:

Dataframe I want to modify

我想合并列并组织数据,使其看起来像这样:

Desired outcome

【问题讨论】:

标签: python dataframe merge


【解决方案1】:

这个示例代码应该会有所帮助。

import pandas as pd

df = pd.DataFrame(
    {
        "pais":[1970, 1971],
        "Brazil":[8, 11],
        "China": [34, 12]
    }
)
df = df.set_index('pais')

print("Input\n", df)

d = {
    "ano": [],
    "pais": [],
    "x": [],
}
width, height = df.shape
for h in range(height):
    for w in range(width):
        d["ano"].append(df.index[h])
        d["pais"].append(df.columns[w])
        d["x"].append(df.iloc[[h],[w]].to_numpy()[0][0])

df2 = pd.DataFrame(d)

print("Output\n", df2)

输入

       Brazil  China
pais               
1970       8     34
1971      11     12

输出

    ano    pais   x
0  1970  Brazil   8
1  1970   China  34
2  1971  Brazil  11
3  1971   China  12

【讨论】:

  • 谢谢你,Jitesh。尽管您的回复非常清楚,但有人帮助我提供了一个更简单的解决方案,使用函数 melt: new_df = df.melt(id_vars = ['pais'], var_name = 'ano', value_name = 'x')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
相关资源
最近更新 更多