我目前正在尝试用合理的数据替换数据集中的值。
在以下情况下,我想替换“年龄”列中的NAN值:
如果此人的姓名中包含字符串“ Mrs”,并且:
如果Age value == Nan:
替换(Nan值为40)
我正在使用以下代码:
c = dftrain[dftrain['Age'].isnull()]
a = c["Name"].str.contains("Mrs.")
c(布尔值)=年龄为Nan的所有行
a =字符串为Mrs.的所有行。
请帮助我:) !!!
答案 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