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

如何将Pandas DataFrame日期列的行值替换为qid格式并拆分多行

解决方法

先修正你原数据里的语法小问题(少了一个闭合引号),然后按以下步骤处理:

  1. 拆分逗号分隔的日期到独立行:用str.split(',')把每个单元格的日期字符串拆成列表,再用explode()方法将列表展开为单独行。
  2. 生成递增的qid标识:重置DataFrame的索引,然后基于新索引生成qid:序号格式的字符串。

完整代码如下:

import pandas as pd

# 修正后的原数据
data = {'date': ['1/1/2022', '1/2/2022,1/3/2022']}
df = pd.DataFrame(data)

# 拆分多行
df = df.assign(date=df['date'].str.split(',')).explode('date', ignore_index=True)

# 替换为qid格式
df['date'] = df.index.map(lambda x: f'qid:{x}')

print(df)

运行后输出的结果就是你要的目标DataFrame:

date
0  qid:0
1  qid:1
2  qid:2

步骤解释

  • df.assign(date=df['date'].str.split(',')):把每个日期单元格按逗号分割成列表,比如'1/2/2022,1/3/2022'变成['1/2/2022', '1/3/2022']。
  • explode('date', ignore_index=True):将列表中的每个元素拆成单独一行,同时重置索引避免混乱。
  • df.index.map(lambda x: f'qid:{x}'):利用DataFrame的索引(从0开始递增)直接生成带序号的qid字符串,简单高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:20:27