我正在尝试重新塑造一个pandas数据框,通过将其中一列数据转换为行(通过透视或取消堆叠)。
我是新手,很可能我错过了一些显而易见的东西。我进行了广泛的搜索,但没有成功地应用任何我遇到的解决方案。
df
Location Month Metric Value
0 Texas January Temperature 10
1 New York January Temperature 20
2 California January Temperature 30
3 Alaska January Temperature 40
4 Texas January Color Red
5 New York January Color Blue
6 California January Color Green
7 Alaska January Color Yellow
8 Texas February Temperature 15
9 New York February Temperature 25
10 California February Temperature 35
11 Alaska February Temperature NaN
12 Texas February Color NaN
13 New York February Color Purple
14 California February Color Orange
15 Alaska February Color Brown
我正在尝试将度量值“旋转”成列。最终目标是得到这样的结果:
Location Month Temperature Color
Texas January 10 Red
New York January 20 Blue
California January 30 Green
Alaska January 40 Yellow
Texas February 15
New York February 25 Purple
California February 35 Orange
Alaska February Brown
我曾试过使用pivot、pivot_table以及unstack方法,但我确定我还缺少一些东西。许多复杂性似乎是因为我混合了字符串和数字,并且数据中还有一些缺失值。
到目前为止,这是我能够实现的最接近的结果,但我不想为月份列添加额外行,导致更多的空白值:
df.set_index(['Location','Month','Metric'], append=True, inplace=True)
df.unstack()
Value
Metric Color Temperature
Location Month
0 Texas January None 10
1 New York January None 20
2 California January None 30
3 Alaska January None 40
4 Texas January Red None
5 New York January Blue None
6 California January Green None
7 Alaska January Yellow None
非常感谢您的帮助。这似乎是一个简单的问题,有很多可行的解决方案。