在 Python pandas 中转置数据框

Transpose dataframe in Python pandas

我有一个这样的数据框

输入

>>> df

 sent      cite 
 a         1,2,3
 b         2,4
 c         5

我想转置每行包含 cite 和 sent 组合值的数据框。请注意 citesent 可以重复(例如 cite 2

预期输出

>>> df

 cite      sent 
 1         a
 2         a
 2         b
 3         a
 4         b
 5         c

我试过这个但是没用

df = df.pivot( columns='cite', values='sent')

尝试 split 然后 explode

df = df.assign(cite=df['cite'].str.split(',')).explode('cite')

使用Series.str.split with df.explode and df.sort_values:

In [141]: df = df.assign(cite=df['cite'].str.split(',')).explode('cite').sort_values('cite')

In [142]: df
Out[142]: 
  sent cite
0    a    1
0    a    2
1    b    2
0    a    3
1    b    4
2    c    5