python - 旋转具有重复值的数据框

标签 python pandas dataframe pivot

我有一个像这样的数据框:

df = pd.DataFrame({'id':{1,2,3,4,4},
'course':{'english', 'art', 'math', 'english', 'chem'},
'result':{'a','b','c','a','b'}})

我想对此进行调整:

course  English art math sci chem 
id
1         a      -    -   -    -   
2         -      b    -   -    -
3         -      -    c   -    -
4         a      -    -   -    b

注意:ID、结果和类(class)中存在重复值。 由于重复的值,我无法旋转它。

最佳答案

pivot 工作得很好。我认为问题出在你的输入上。每个键都有一组,因此重复项会消失。使用列表就可以了。

# use a list for values
df = pd.DataFrame({'id':[1,2,3,4,4],
                   'course':['english', 'art', 'math', 'english', 'chem'],
                   'result':['a','b','c','a','b']})
# pivot and reindex
df.pivot(*df).reindex(columns=['english', 'art', 'math', 'sci', 'chem']).fillna('-')

enter image description here

关于python - 旋转具有重复值的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72383322/

相关文章:

python - socket编程时如何区分tcp/udp

python - 使用英特尔编译器和 MKL 构建 Numpy - CentOS 7

python - Pandas DataFrame 中连续的 NaN 大于阈值

pandas - 如何在异步连接上使用 pandas.read_sql?

python - Pandas 数据帧 : to_dict() poor performance

python - 如何在Python中将pandas数据框转换为矩阵格式?

python - 列表中的一个值,python

python - 在 wxpython 中,将所有文本从一个 TextCtrl 复制、剪切、粘贴并选择到另一个

python - 计算Python中两个链接列的频率

python - 为什么 pandas DataFrame 中的列在此循环中不起作用?