在 Pandas Python 中做与支点相反的事情 [英] Doing the opposite of pivot in pandas Python
本文介绍了在 Pandas Python 中做与支点相反的事情的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试做与 Pandas 中的枢轴相反的事情.想知道是否有人可以提供一些帮助?尝试从下面转换数据
I'm trying to do the opposite of pivot in pandas. Wondering whether someone can provide some assistance? Trying to transform the data from the below
|Date|A|B|C|D|E |
|----|-|-|-|-|--|
|2005|1|2|3|4|50|
|2006|6|7|8|9|10|
到
|Date|X|Val|
|----|-|---|
|2005|A|1 |
|2005|B|2 |
|2005|C|3 |
etc
|2006|A|6 |
etc
|2006|E|10 |
非常感谢
推荐答案
df = df.set_index('Date').stack().reset_index(name='Val').rename(columns={'level_1':'X'})
print (df)
Date X Val
0 2005 A 1
1 2005 B 2
2 2005 C 3
3 2005 D 4
4 2005 E 50
5 2006 A 6
6 2006 B 7
7 2006 C 8
8 2006 D 9
9 2006 E 10
或者 melt
,但值的顺序不同:
Or melt
, but there is different ordering of values:
df = df.melt('Date', var_name='X', value_name='Val')
print (df)
Date X Val
0 2005 A 1
1 2006 A 6
2 2005 B 2
3 2006 B 7
4 2005 C 3
5 2006 C 8
6 2005 D 4
7 2006 D 9
8 2005 E 50
9 2006 E 10
所以对于相同的输出添加 sort_values
:
So for same output add sort_values
:
df = (df.melt('Date', var_name='X', value_name='Val')
.sort_values(['Date','X'])
.reset_index(drop=True))
print (df)
Date X Val
0 2005 A 1
1 2005 B 2
2 2005 C 3
3 2005 D 4
4 2005 E 50
5 2006 A 6
6 2006 B 7
7 2006 C 8
8 2006 D 9
9 2006 E 10
这篇关于在 Pandas Python 中做与支点相反的事情的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文