如何将多个列附加到两个列中?

2024-09-28 05:25:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理的数据位于一大组列中,包含相关的值—例如:

| YearQ  | Area A | Area B | Area C |
+--------+--------+--------+--------+
| 2017Q1 | 1234.0 | 9252.0 | 3421.0 |
| 2017Q2 | 1245.0 | 9368.0 | 3321.0 |
| 2017Q3 | 1350.0 | 9440.0 | 3225.0 |
| 2017Q4 | 1333.0 | 9501.0 | 3625.0 |

为了将此数据与另一个数据集连接起来,我需要将这些值附加到一列中,同时保留Area列数据和YearQ数据:

| YearQ  |  Area  |  Value  |
+--------+--------+---------+
| 2017Q1 | Area A | 1234.0  |
| 2017Q1 | Area B | 9252.0  |
| 2017Q1 | Area C | 3421.0  |
| 2017Q2 | Area A | 1245.0  |
| 2017Q2 | Area B | 9368.0  |
| 2017Q2 | Area C | 3321.0  |

我试过使用df.appendpivot_table,但到目前为止还无法得到所需的结果。。我应该在这里使用哪个函数?你知道吗


Tags: 数据函数dfvaluetableareapivotappend
1条回答
网友
1楼 · 发布于 2024-09-28 05:25:29

^{}^{}一起使用:

df = df.melt('YearQ', var_name='Area', value_name='Value').sort_values(['YearQ','Area'])

使用^{}^{}^{}的一种更慢的选择:

df = df.set_index('YearQ').stack().rename_axis(('YearQ','Area')).reset_index(name='Value')

print (df)
     YearQ    Area   Value
0   2017Q1  Area A  1234.0
4   2017Q1  Area B  9252.0
8   2017Q1  Area C  3421.0
1   2017Q2  Area A  1245.0
5   2017Q2  Area B  9368.0
9   2017Q2  Area C  3321.0
2   2017Q3  Area A  1350.0
6   2017Q3  Area B  9440.0
10  2017Q3  Area C  3225.0
3   2017Q4  Area A  1333.0
7   2017Q4  Area B  9501.0
11  2017Q4  Area C  3625.0

相关问题 更多 >

    热门问题