如何将Pandas DataFrame中的字符串列表转换为多行?
如何展开DataFrame中的列表列?
嘿,这个需求用pandas的explode()方法就能轻松搞定,完全适配你这种把列表列拆分成多行的场景!
步骤1:构造原始DataFrame
先把你给出的数据集用代码还原出来:
import pandas as pd # 构造原始数据 df = pd.DataFrame({ 'mAID': ['A', 'B', 'A', 'A'], 'MAID': ['D', 'E', 'E', 'F'], 'PIDs': [['YY', 'ZZ'], ['XY'], ['YY', 'XX'], ['YY', 'XX', 'ZZ']] })
步骤2:使用explode()展开列表列
只需要一行代码就能完成转换:
# 展开PIDs列的列表,同时重置索引 df_exploded = df.explode('PIDs').reset_index(drop=True)
转换后的结果
运行上面的代码后,df_exploded就是你想要的格式:
| mAID | MAID | PIDs | |
|---|---|---|---|
| 0 | A | D | YY |
| 1 | A | D | ZZ |
| 2 | B | E | XY |
| 3 | A | E | YY |
| 4 | A | E | XX |
| 5 | A | F | YY |
| 6 | A | F | XX |
| 7 | A | F | ZZ |
简单解释下:explode('PIDs')会把PIDs列里的每个列表元素单独拆成一行,其他列(mAID、MAID)的对应值会自动保留;reset_index(drop=True)是为了让索引重新从0开始连续排列,和你的示例结果完全匹配。
内容的提问来源于stack exchange,提问作者BKS
相关产品推荐
相关产品推荐

