import pandas as pd
# 初始DataFrame,其中“人名”列包含多个人名,用逗号分隔
data = {
"合同编号": ["2024-01", "2024-02", "2024-03"],
"人名": ["关羽,马超", "张飞,黄忠", "赵云,貂蝉"]
}
# 创建DataFrame
df = pd.DataFrame(data)
# 使用str.split将“人名”列拆分成列表,然后使用explode拆分成单独的行
df_expanded = df.assign(人名=df['人名'].str.split(',')).explode('人名')
# 重置索引以匹配新的行数
df_expanded = df_expanded.reset_index(drop=True)
# 打印结果
print(df_expanded)
在这个例子中,str.split
方法用于将“人名”列中的每个条目拆分成一个列表,其中每个列表包含原始条目中的所有名字。然后,explode
方法被用来将这些列表拆分成单独的行。最后,我们重置了索引以确保行与行之间的一致性,并打印出扩展后的DataFrame
。现在,每个名字都有自己的一行,并且与相应的“合同编号”匹配。