我正在做一个python脚本来清理我们从Qualtrics收到的创业竞赛的CSV文件。
到目前为止,我已经对数据进行了切片,然后将其写回到带有Pandas的Excel文件中。但是,我有一些列,我需要用它来创建新行。 例如,对于每个团队提交,我们都有
Team Name Nb of teammates Team Leader One Team Leader Two
1 x 2 Joe Joey
2 y 1 Jack
...
我需要返回
Team Name Nb of teammates Team Leader
1 x 2 Joe
2 Joey
3 y 1 Jack
...
这是我所拥有的真实数据的一个非常简单的例子,因为还有更多专栏,但我想知道如何在Pandas / Python中做到这一点。
我已在Inserting Row和Indexing: Setting with enlargement了解这些讨论,但我不知道该怎么做。
感谢您的帮助!
答案 0 :(得分:1)
你可以使用融化:
#set up frame
df =pd.DataFrame({'Team Name':['x','y'], 'Nb of teammates':[2,1], 'Team Leader One':['Joe','Jack'],'Team Leader Two':['Joey',None]})
融化框架:
pd.melt(df,id_vars=['Team Name','Nb of teammates'],value_vars=['Team Leader One','Team Leader Two']).dropna()
返回:
Team Name Nb of teamates variable value
0 x 2 Team Leader One Joe
1 y 1 Team Leader One Jack
2 x 2 Team Leader Two Joey