用Pandas将行转换为列

2024-09-27 22:40:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

等等。csv文件表示为不同讲师所做的调查的结果

我想把这32个问题作为我的特征,把分数作为我的行。然而,由于32个问题对每个产品都重复,换位对我不起作用

我试过用pd.枢轴如其他问题所示。这是我能得到的

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.熔化()我得到以下结果

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

分数是浮点数


Tags: 文件csv产品模式特征分数pdscore
2条回答

尝试使用:

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

这是^{}^{}

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

相关问题 更多 >

    热门问题