用未修改原始数据集的其他列的值填充空单元格



我有一个熊猫DataFrame

Company Name        | Person Name  | Phone number
General Electric    | John Doe     | 
Ford                |              | 123 456 789

我想用公司名称填写空名称

Company Name        | Person Name  | Phone number
General Electric    | John Doe     | 
Ford                | Ford         | 123 456 789

我会写df.loc[df["Person Name"].isna(),'Person Name'] = df["Company Name"]但是它将修改原始DataFrame。

df.copy().loc[df["Person Name"].isna(),'Person Name'] = df["Company Name"]应该做到这一点,但有没有一种更优雅的方法可以做到,而不使用copy()

我们可以使用fillnaCompany Name:中的值填充Person Name中缺失的值

df.fillna(df['Company Name'].to_frame('Person Name'))

Company Name Person Name
0  General Electric    John Doe
1              Ford        Ford

当您从原始数据帧中子设置df时,添加copy

df = or_df[somecondition].copy()

然后使用的fillna

df['Person Name'].fillna(df["Company Name"],inplace=True)

最新更新