繁体   English   中英

根据列表 pandas 在现有 dataframe 中添加多行

[英]Add multiple rows in existing dataframe based on a list pandas

我有一个 1 行 20 列的 dataframe df:

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

我也有一个清单 L

L = ['Doctor', 'Carpenter']

我想在我的 dataframe 中创建一个'Occupation'列,以便所有其他列值保持不变。

最终需要 output:

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

我试图迭代列表,然后使用 pd.concat 到 append 两片。

有更好的方法吗?

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

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

另一个想法是首先分配嵌套列表,然后DataFrame.explode

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM