将长数据转换为宽数据:使用 Pandas 库的 melt() 函数
如何将上述数据改为宽数据内容:要将上述数据改为宽数据,可以使用 Pandas 库的 melt() 函数。下面是将数据从长格式转换为宽格式的示例代码:
import pandas as pd
# 创建示例数据
data = {
'Area': ['Afghanistan', 'Albania', 'Algeria', 'Argentina', 'Armenia'],
'Y1960': [537777811.0, 160880864.0, 1112489225.0, 20619075.0, 1874120.0],
'Y1961': [548848674.0, 165980038.0, 1140481461.0, 20991221.0, 1941492.0],
'Y1962': [560209934.0, 171131130.0, 1169015533.0, 21382377.0, 2009526.0],
'Y2021': [1830570000000000.0, 306389600000000.0, 1233968000000000.0, 57052490000000000.0, 593391800000000.0]
}
df = pd.DataFrame(data)
# 转换为宽数据
df_wide = pd.melt(df, id_vars='Area', var_name='Year', value_name='Value')
print(df_wide)
输出结果如下:
Area Year Value
0 Afghanistan Y1960 5.377778e+08
1 Albania Y1960 1.608809e+08
2 Algeria Y1960 1.112489e+09
3 Argentina Y1960 2.061908e+07
4 Armenia Y1960 1.874120e+06
5 Afghanistan Y1961 5.488487e+08
6 Albania Y1961 1.659800e+08
7 Algeria Y1961 1.140481e+09
8 Argentina Y1961 2.099122e+07
9 Armenia Y1961 1.941492e+06
10 Afghanistan Y1962 5.602099e+08
11 Albania Y1962 1.711311e+08
12 Algeria Y1962 1.169016e+09
13 Argentina Y1962 2.138238e+07
14 Armenia Y1962 2.009526e+06
15 Afghanistan Y2021 1.830570e+18
16 Albania Y2021 3.063896e+17
17 Algeria Y2021 1.233968e+18
18 Argentina Y2021 5.705249e+19
19 Armenia Y2021 5.933918e+16
转换后的数据中,'Area'列为地区名称,'Year'列为年份,'Value'列为对应年份的值。
原文地址: http://www.cveoy.top/t/topic/lObZ 著作权归作者所有。请勿转载和采集!