繁体   English   中英

用熊猫将行转置为列

[英]Transpose Rows to Columns with 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

分数是浮点数

尝试使用:

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

这是groupby.cumcountgroupby.cumcount unstack()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM