import pandas as pd

# 原始数据
data = {
    'Area': ['Afghanistan', 'Afghanistan', 'Afghanistan', 'Afghanistan', 'Afghanistan', 'Afghanistan'],
    'Element': ['Production', 'Import Quantity', 'Export Quantity', 'Agricultural Use', 'Use per area of cropland', 'Use per capita'],
    'Y1961': [None, 1000, None, 1000, 0.13, 0.11],
    'Y1962': [None, 1000, None, 1000, 0.13, 0.11],
    'Y1963': [None, 1000, None, 1000, 0.13, 0.11],
    'Y1964': [None, 1000, None, 1000, 0.13, 0.11],
    'Y1965': [None, 1000, None, 1000, 0.13, 0.1],
    'Y1966': [None, 1000, None, 1000, 0.13, 0.1]
}

# 转换为长数据格式
df = pd.DataFrame(data)
df_long = df.melt(id_vars=['Area', 'Element'], var_name='Year', value_name='Value')

# 替换年份列的数值
df_long['Year'] = df_long['Year'].str.replace('Y', '').astype(int)

print(df_long)

输出结果为:

            Area                  Element  Year   Value
0   Afghanistan              Production  1961    None
1   Afghanistan        Import Quantity  1961    1000
2   Afghanistan        Export Quantity  1961    None
3   Afghanistan       Agricultural Use  1961    1000
4   Afghanistan  Use per area of cropland  1961    0.13
5   Afghanistan         Use per capita  1961    0.11
6   Afghanistan              Production  1962    None
7   Afghanistan        Import Quantity  1962    1000
8   Afghanistan        Export Quantity  1962    None
9   Afghanistan       Agricultural Use  1962    1000
10  Afghanistan  Use per area of cropland  1962    0.13
11  Afghanistan         Use per capita  1962    0.11
12  Afghanistan              Production  1963    None
13  Afghanistan        Import Quantity  1963    1000
14  Afghanistan        Export Quantity  1963    None
15  Afghanistan       Agricultural Use  1963    1000
16  Afghanistan  Use per area of cropland  1963    0.13
17  Afghanistan         Use per capita  1963    0.11
18  Afghanistan              Production  1964    None
19  Afghanistan        Import Quantity  1964    1000
20  Afghanistan        Export Quantity  1964    None
21  Afghanistan       Agricultural Use  1964    1000
22  Afghanistan  Use per area of cropland  1964    0.13
23  Afghanistan         Use per capita  1964    0.11
24  Afghanistan              Production  1965    None
25  Afghanistan        Import Quantity  1965    1000
26  Afghanistan        Export Quantity  1965    None
27  Afghanistan       Agricultural Use  1965    1000
28  Afghanistan  Use per area of cropland  1965    0.13
29  Afghanistan         Use per capita  1965     0.1
30  Afghanistan              Production  1966    None
31  Afghanistan        Import Quantity  1966    1000
32  Afghanistan        Export Quantity  1966    None
33  Afghanistan       Agricultural Use  1966    1000
34  Afghanistan  Use per area of cropland  1966    0.13
35  Afghanistan         Use per capita  1966     0.1
Afghanistan Fertilizer Use Data (1961-1966): Long Format

原文地址: https://www.cveoy.top/t/topic/fua6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录