如何将Pandas DataFrame中Q2列逗号分隔值拆分为独立多行
实现步骤
- 首先构造目标DataFrame:
import pandas as pd data = {'user_id': {2: 3, 3: 4, 4: 5}, 'Q1': {2: '1', 3: '8', 4: '2'}, 'Q2': {2: '4', 3: '3', 4: '2, 3, 4'}, 'Total Traffic(MB)': {2: 261.1186, 3: 179.18564, 4: 351.99208}} df = pd.DataFrame(data)
- 拆分Q2列多值并展开为独立行:
# 将Q2列的字符串按「逗号+空格」分割为列表 df['Q2'] = df['Q2'].str.split(', ') # 把列表中每个元素拆为单独行,其余列自动复用原值 df = df.explode('Q2', ignore_index=True)
处理后结果
最终得到的DataFrame如下:
| user_id | Q1 | Q2 | Total Traffic(MB) |
|---|---|---|---|
| 3 | 1 | 4 | 261.11860 |
| 4 | 8 | 3 | 179.18564 |
| 5 | 2 | 2 | 351.99208 |
| 5 | 2 | 3 | 351.99208 |
| 5 | 2 | 4 | 351.99208 |
补充说明
- 如果不需要重置索引,去掉
explode方法里的ignore_index=True参数即可,原最后一行拆分后的3行都会保留原索引值4 - 该方法会自动处理所有Q2列存在多值(
,分隔)的行,单值行不会发生变化,刚好匹配需求
内容的提问来源于stack exchange,提问作者alex smolyakov
相关产品推荐
相关产品推荐

