Python,如何根据其他列中的其他值替换值?

时间:2020-05-05 14:50:44

标签: python pandas

我目前正在尝试用合理的数据替换数据集中的值。

在以下情况下,我想替换“年龄”列中的NAN值:

如果此人的姓名中包含字符串“ Mrs”,并且:

如果Age value == Nan:

替换(Nan值为40)

我正在使用以下代码:

c = dftrain[dftrain['Age'].isnull()]
a = c["Name"].str.contains("Mrs.")

c(布尔值)=年龄为Nan的所有行

a =字符串为Mrs.的所有行。

请帮助我:) !!!

2 个答案:

答案 0 :(得分:1)

希望下面几行对您有用...

帧输入-

       Name  Age
0  Mrs XYZ   21
1  Mr Devid  NaN
2  Mrs OPQ   NAN

#I have taken through excel you can use your own way

import pandas
df = pandas.read_excel('test.xlsx')
df.loc[df['Name'].str.contains('Mrs.') & df['Age'].isnull(), 'Age'] = 40

print(df)

# Output Frame - 
       Name  Age
0  Mrs XYZ   21
1  Mr Devid  NaN
2  Mrs OPQ  40

答案 1 :(得分:0)

按照上面Hietsh的建议使用熊猫。

我只会更改以下指定的条件格式:

import pandas as pds

data = pds.read_excel('as1.xlsx')
df = pds.DataFrame(data, columns=['Product', 'Title', 'Name', 'Age'])

df.loc[((df['Age'].isnull()) & (df['Title'] == ('Mrs.'))), 'Age'] = 40

作为一个很好的参考,我建议使用Pandas website