Python Pandas插入具有列值的新行

时间:2015-02-24 04:34:29

标签: python excel pandas

我正在做一个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 RowIndexing: Setting with enlargement了解这些讨论,但我不知道该怎么做。

感谢您的帮助!

1 个答案:

答案 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