You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何重塑Pandas DataFrame,按transaction列展示对应clean_words

解决方案

你之前用pivot_table的方式会把clean_words作为索引,导致重复词汇被合并,结构也不符合预期。要实现将transaction作为列、对应clean_words按行展示的效果,可按以下步骤操作:

步骤1:为每个transaction内的词汇添加行号

通过分组并生成累计计数,给每个transaction里的词汇分配唯一的行位置,确保后续重塑时词汇能按原有顺序排列:

import pandas as pd

data = {'clean_words':['good','evening','how','are','you','how','can','i','help'],
        'start_time':[1900,2100,2500,2750,2900,1500,1650,1770,1800],
        'end_time':[2100,2500,2750,2900,3000,1650,1770,1800,1950],
        'transaction':[1,1,1,1,1,2,2,2,2]}

df = pd.DataFrame(data)

# 为每个transaction分组内的词汇添加行号
df['row_id'] = df.groupby('transaction')['clean_words'].cumcount()

步骤2:重塑DataFrame

使用pivot方法,以行号为索引,transaction为列,提取clean_words作为对应值:

result = df.pivot(index='row_id', columns='transaction', values='clean_words')
print(result)

执行后得到的结果如下:

transaction       1     2
row_id                   
0              good   how
1            evening  can
2               how     i
3               are  help
4               you   NaN

该结果完全匹配需求:transaction 1列展示对应的5个词汇,transaction 2列展示对应的4个词汇,长度不足的位置自动填充NaN。

内容的提问来源于stack exchange,提问作者ASH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:43:07