在R语言中将ID列与另一列的列表元素匹配生成长数据框
解决方法
你可以用Pandas的explode()方法快速实现这个需求,这是处理列表列拆分行的最优方案:
步骤1:构造示例数据(模拟你的原始DataFrame)
import pandas as pd # 模拟你提供的原始数据结构 df = pd.DataFrame({ 'ID': ['001', '002', '003'], 'Codes': [['I10', 'E11'], ['I20'], ['J45', 'J46', 'N18']] })
步骤2:使用explode()拆分列表列
# 拆分Codes列,生成长格式DataFrame,ignore_index=True重置行号 long_df = df.explode('Codes', ignore_index=True)
执行后得到的long_df就是你需要的格式:
| ID | Codes |
|---|---|
| 001 | I10 |
| 001 | E11 |
| 002 | I20 |
| 003 | J45 |
| 003 | J46 |
| 003 | N18 |
兼容旧版Pandas(0.25以下版本)
如果你的Pandas版本低于0.25,explode()方法还未推出,可以用以下替代方案:
long_df = df.set_index('ID')['Codes'].apply(pd.Series).stack().reset_index(name='Codes').drop('level_1', axis=1)
内容的提问来源于stack exchange,提问作者Li Liu
相关产品推荐
相关产品推荐

