用熊猫将行转置为列

时间:2019-07-27 05:24:39

标签: python pandas

我有一个csv文件,该文件遵循以下模式:

q1  score
q2  score
...
q32 score
q1  score
q2  score

等等。 csv文件代表针对不同教师进行的调查的结果

我想让这32个问题成为我的功能,为我的行打分。但是,由于每种产品都会重复32个问题,因此移调对我不起作用

我尝试按照其他问题中的建议使用pd.pivot。据我所知

courseFeedback = pd.melt(courseFeedback, id_vars = [0], var_name = [1])
courseFeedback = courseFeedback.pivot(index = [0], columns =[1])
courseFeedback.head()

执行该代码会导致异常:

ValueError: Length mismatch: Expected 138632 rows, received array of length 1

我的预期结果是这样的数据框:

q1    q2    q3    ... q32
score score score ... score
score score score ... score

注意: -我是初学者。 -请原谅我的英语。我不是母语人士

修改

使用pd.melt()我得到以下结果

   0  variable  value 
0 q1     1        1
1 q2     1        1
2 q3     1        1

分数是浮点数

2 个答案:

答案 0 :(得分:0)

尝试使用:

print(df.groupby('q1').apply(lambda x: x.values[:, 1]).to_frame().T)

答案 1 :(得分:0)

这是groupby.cumcountunstack()

final=df.assign(k=df.groupby(0).cumcount()).set_index([0,'k']).unstack(0)
final.columns=final.columns.get_level_values(1)

0     q1     q2    q32
k                     
0  score  score  score
1  score  score    NaN
相关问题