python - 从 Pandas 中的列生成对

标签 python pandas

Pandas 中最简单的方法是什么

df = pd.DataFrame({'Class': [1, 2], 'Students': ['A,B,C,D', 'E,A,C']})
df

   Class Students
0      1  A,B,C,D
1      2    E,A,C

进入这个?

paired match

最佳答案

让我们试试组合:

from functools import partial
from itertools import combinations

(df.set_index('Class')['Students']
   .str.split(',')
   .map(partial(combinations, r=2))
   .map(list)
   .explode()
   .reset_index())

   Class Students
0      1   (A, B)
1      1   (A, C)
2      1   (A, D)
3      1   (B, C)
4      1   (B, D)
5      1   (C, D)
6      2   (E, A)
7      2   (E, C)
8      2   (A, C)

关于python - 从 Pandas 中的列生成对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63649678/

相关文章:

python - 如何在 Django 管理中过滤 filter_horizo​​ntal?

python - 从 numpy 数组到 DICOM

python - 如何检查连续相同的值和值的计数同时出现 pandas

python - Pandas 选择带有空行的日期范围不起作用

python - 如何将 pandas 中的 log2 比例转换为正常比例

python - 从数据帧获取索引列错误

python - Matplotlib 箭袋量表

python - Dask 图形执行和内存使用

python - 在 Mac OS X 中设置 PocketSphinx

python - Pandas 中的 Groupby 子句