在Python中,如果你有一个包含列表的DataFrame,并且你想要将这些列表中的每个元素都展开为多行,你可以使用pandas库中的explode方法。explode方法会将列表中的每个元素转换为一行,同时保留原始DataFrame中的其他列。
假设你有一个如下的DataFrame,其中object_namelist列包含列表:
import pandas as pd # 创建一个包含列表的DataFrame
df = pd.DataFrame({ 'id': [1, 2, 3], 'object_namelist': [['辅助降尿酸', '利尿'], ['其他药物1', '其他药物2'], ['第三个', '第四个']]
}) print("原始DataFrame:")
print(df)
>>>
原始DataFrame:id object_namelist
0 1 [辅助降尿酸, 利尿]
1 2 [其他药物1, 其他药物2]
2 3 [第三个, 第四个]# 现在,你想要将object_namelist列中的每个列表展开为多行。你可以这样做:# 使用explode方法将object_namelist列中的列表展开为多行
df_exploded = df.explode('object_namelist') print("\n展开后的DataFrame:")
print(df_exploded)
>>>
展开后的DataFrame:id object_namelist
0 1 辅助降尿酸
0 1 利尿
1 2 其他药物1
1 2 其他药物2
2 3 第三个
2 3 第四个