我有一个熊猫数据框。 在此数据帧的一列(“ Q8”)中,某些行为空。我想将这些空单元格替换为字符串('ss')。 我想在有条件的情况下进行更换。这种情况是,如果列('Q7')中的字符串为('我是学生')并且列('Q8')中该行的单元格为空,则替换列('Q8')的空单元格带有“ ss”。
这是我为此编写的代码:
for xx in range(0,len(df['Q8'])):
if df['Q8'][xx]==np.nan:
if df['Q7'][xx]=='I am a student':
df['Q8'][xx].replace('', 'ss', regex=True)
但是从第一个开始找不到np.nan!
答案 0 :(得分:3)
改为使用遮罩:
df.loc[(df['Q7'] == 'I am a student') & (df['Q8'].isna()), 'Q8'] = 'ss'
您也可以使用fillna
:
df.loc[df['Q7'] == 'I am a student', 'Q8'] = df.loc[df['Q7'] == 'I am a student', 'Q8'].fillna('ss')