如何在pandas python中的for循环中的数据框中添加新列

时间:2017-09-26 06:06:02

标签: python pandas dataframe

我从excel文件中读取数据,它是这样的: Que

它采用数据帧格式。我希望修改后的数据框如下:

Sem1  Sem2   Sem3  
50     36     28

45     41     47

50     48     43

我使用了以下代码:

for f in lparameters: print("Creating Column:" ,f) df_temp[f]=dfs["Total"].get_group(f)

但这段代码是唯一的(第一栏)。

请帮帮我!!

1 个答案:

答案 0 :(得分:1)

您可以将set_indexcumcount一起使用,然后重塑unstack

df = df.set_index([df.groupby('Sem').cumcount(), 'Sem'])['Total'].unstack()
print (df)
Sem  Sem2  Sem3  Seml
0      36    28    50
1      41    47    45
2      48    43    50

另一种解决方案是每组创建list,然后使用DataFrame构造函数:

a = df.groupby('Sem')['Total'].apply(list)
df = pd.DataFrame(a.values.tolist(), index=a.index).T
print (df)
Sem  Sem2  Sem3  Seml
0      36    28    50
1      41    47    45
2      48    43    50