在 Pandas DataFrame 中旋转 Table - 将行转为列
Pivot Table in Pandas DataFrame - Make rows to columns
所以我有一个数据框,其中州是美国州代码,年份列具有该特定州的值,数据框具有所有州的值,有没有一种方法可以让我转向所有年份的“年”列和值仅在一列中。
My current dataframe :
STATE YEAR2021 YEAR2022 YEAR2023 ....
XX XX XX XX
Desired DataFrame:
STATE YEAR VALUE
XX 2021 XX
XX 2022 XX
XX 2023 XX
如何在 python 中实现此目的?
您可以使用以下内容:
df2 = (df.set_index('STATE')
.stack()
.reset_index()
.rename(columns={'level_1': 'YEAR',
0: 'VALUE'})
)
df2['YEAR'] = df2['YEAR'].str[4:]
输入:
STATE YEAR2021 YEAR2022 YEAR2023
0 AA XX YY ZZ
输出:
STATE YEAR VALUE
0 AA 2021 XX
1 AA 2022 YY
2 AA 2023 ZZ
所以我有一个数据框,其中州是美国州代码,年份列具有该特定州的值,数据框具有所有州的值,有没有一种方法可以让我转向所有年份的“年”列和值仅在一列中。
My current dataframe :
STATE YEAR2021 YEAR2022 YEAR2023 ....
XX XX XX XX
Desired DataFrame:
STATE YEAR VALUE
XX 2021 XX
XX 2022 XX
XX 2023 XX
如何在 python 中实现此目的?
您可以使用以下内容:
df2 = (df.set_index('STATE')
.stack()
.reset_index()
.rename(columns={'level_1': 'YEAR',
0: 'VALUE'})
)
df2['YEAR'] = df2['YEAR'].str[4:]
输入:
STATE YEAR2021 YEAR2022 YEAR2023
0 AA XX YY ZZ
输出:
STATE YEAR VALUE
0 AA 2021 XX
1 AA 2022 YY
2 AA 2023 ZZ