通过重复行来重塑 pandas 数据框 [英] Reshaping a pandas dataframe by repeating rows
本文介绍了通过重复行来重塑 pandas 数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是Python的新手,尤其是Pandas. 我有一个像
I am new to Python especially Pandas. I have one dataframe like
-----------------------------------------------------
Id Name Salary desc1 desc2 desc3
-----------------------------------------------------
1 ABC1 2000 x1 y1 z1
-----------------------------------------------------
2 ABC2 5000 x2 y1 z2
-----------------------------------------------------
我想将其转换为这种方式
I want to transform it into this way
-----------------------------------------
ID Name Salary Variable
-----------------------------------------
1 ABC1 2000 x1
-----------------------------------------
1 ABC1 2000 y1
-----------------------------------------
1 ABC1 2000 z1
-----------------------------------------
2 ABC2 5000 x2
-----------------------------------------
2 ABC2 5000 y2
-----------------------------------------
2 ABC2 5000 z2
-----------------------------------------
请帮助.预先感谢.
推荐答案
您需要 set_index
+ 如果不需要对前三列进行排序:
If sorting first 3 columns is not necessary:
使用 melt
:
df = df.melt(['Id','Name','Salary'], value_name='Variable').drop('variable', axis=1)
print (df)
Id Name Salary Variable
0 1 ABC1 2000 x1
1 2 ABC2 5000 x2
2 1 ABC1 2000 y1
3 2 ABC2 5000 y1
4 1 ABC1 2000 z1
5 2 ABC2 5000 z2
lreshape
现在没有文档,但将来可能会被删除( github链接).
df = pd.lreshape(df, {'Variable':['desc1','desc2','desc3']})
print (df)
Id Name Salary Variable
0 1 ABC1 2000 x1
1 2 ABC2 5000 x2
2 1 ABC1 2000 y1
3 2 ABC2 5000 y1
4 1 ABC1 2000 z1
5 2 ABC2 5000 z2
这篇关于通过重复行来重塑 pandas 数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文