基于列表在现有dataframe中添加多行

2024-05-29 05:06:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧df,有1行20列:

id    name   age...... And so on
1      Ian    29...... 

我也有一份清单

L = ['Doctor', 'Carpenter']

我想在我的数据帧中创建一列'Occupation',这样所有其他列值都保持不变

所需的最终输出:

id    name   age...... Occupation
1      Ian    29...... Doctor
1      Ian    29...... Carpenter

我试图迭代列表,然后使用pd.concat附加两个切片

有更好的方法吗


Tags: and数据nameiddf列表ageso
1条回答
网友
1楼 · 发布于 2024-05-29 05:06:58

您可以按列表的长度重复索引值,然后分配给新列:

L = ['Doctor', 'Carpenter']

df = df.loc[df.index.repeat(len(L))].assign(Occupation = L).reset_index(drop=True)
print (df)
   id name age Occupation
0   1  Ian  29 Doctor
1   1  Ian  29 Carpenter

另一个想法是先分配嵌套列表,然后^{}

df = df.assign(Occupation = [L]).explode('Occupation').reset_index(drop=True)

相关问题 更多 >

    热门问题