我从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)
但这段代码是唯一的(第一栏)。
请帮帮我!!
答案 0 :(得分:1)
您可以将set_index
与cumcount
一起使用,然后重塑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