繁体   English   中英

从 pandas df 中的下一行获取值并插入到上一行

[英]get values from next row in pandas df and insert to previous row

我有一个大型 q/a 数据集,每个唯一 ID 始终包含 3 行/它们已经分组。

ID 文本
1 最大限度 你好
1 查尔斯 最大限度 嘿 !
1 亚历克斯 最大限度 你好!
2 你好
2 嘿??!
2 山姆 耶?

我只想要文本值并将每三行压缩成一行/删除另外两行。

ID author_text_1 author_text_2 author_text_3 回复文本_1 回复文本_2
1 你好 嘿 ! 你好!
2 你好 嘿??! 耶?

我尝试为每组 3 行删除最后两行并将每个“文本”列中的值添加到相应的“作者文本”和“回复文本”列。

我正在努力实现作者可以发布问题帖子和另外 2 个帖子来填充三行的案例。

您需要创建该列作为pivot的新键

df['key'] = np.where(df.to.isna(),'author_text_','reply_text_')
df['key'] += df.groupby(['id','key']).cumcount().add(1).astype(str)
out = df.pivot('id','key','text')
Out[254]: 
key author_text_1 author_text_2 reply_text_1 reply_text_2
id                                                       
1          NaN hi           NaN         hey!       howdi!
2              hi        hey!?!        jeah?          NaN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM