我有一个熊猫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()
?
我们可以使用fillna
用Company 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)