python - Pandas - 根据组值和列值有效地连接行

标签 python pandas data-manipulation

假设我们有一个具有以下结构的 pandas 数据框: 编号 |编号|序列| 一个 | 1 | × | 一个 | 3 | Z | 乙 | 1 |磷 | 乙 | 6 |格 | 乙 | 5 |丙 |

所需的结果是一个数据框,如下所示: 编号 |new_seq| 一个 |许志 | 乙 | PCG |

new_seq列是seqId分组,按照number表示的顺序> 专栏。

有效实现此操作的选项有哪些?

最佳答案

您可以使用 sort_values使用 groupbyapply join:

print (df.sort_values(['Id', 'number']))
  Id  number seq
0  a       1   X
1  a       3   Z
2  b       1   P
4  b       5   C
3  b       6   G

df = df.sort_values(['Id', 'number'])
       .groupby('Id', sort=False).seq
       .apply(''.join)
       .reset_index(name='new_seq')

print (df)
  Id new_seq
0  a      XZ
1  b     PCG

关于python - Pandas - 根据组值和列值有效地连接行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049887/

相关文章:

python - 如何从经纬度坐标列表中获取城市、州和国家?

r - 使用 R 对面板数据中横截面单位的值求和

python - Pandas 使用 for 循环连接数据帧

python - Matplotlib 错误地绘制 Pandas DataFrame 中的 x 个刻度

Python比较时间戳和输入时间

python - 根据等于 True 的列数选择数据框中的行

r - 操作嵌套数据

python - 从数据帧中的字符串中提取浮点值

python - 无法访问属于任何人的媒体文件 :nobody

python - 导入请求适用于 Windows shell 但不适用于 PyCharm