Python 如何更改单元格';if语句中的内容是什么?

Python 如何更改单元格';if语句中的内容是什么?,python,Python,在这里,我尝试将另一列中有“退休人员”的行中的days_employed列的单元格转换为NaN。事实上,它将整个days_employeed列转换为NaN,而我只希望该行中的特定单元格为NaN for row in df['income_type']: if row == 'retiree': df['days_employed'] = float('Nan') df['days_employed']=float('Nan')中是否有类似于行的内容?因为我觉得这就像熊

在这里,我尝试将另一列中有“退休人员”的行中的days_employed列的单元格转换为NaN。事实上,它将整个days_employeed列转换为NaN,而我只希望该行中的特定单元格为NaN

for row in df['income_type']: 
    if row == 'retiree':
        df['days_employed'] = float('Nan')

df['days_employed']=float('Nan')中是否有类似于
行的内容?

因为我觉得这就像熊猫一样,您可以通过对整个列应用一个条件,然后将这些单元格分配给Nan来对其进行矢量化:

df.loc[df['income_type'].eq('retiree'), 'days_employed'] = np.nan
或者,使用
np重新指定列。wher

df['days_employed'] = np.where(
    df['income_type'].eq('retiree'), np.nan, df['days_employed'])

当您确实列出[column]时,您指定的是整个列,这就是为什么整个
天数被更改为NaN的原因。试试这个,让我知道它是否有效:

for row in df['income_type']: 
    if row == 'retiree':
        df['days_employed'][x] = float('Nan')
注:x是
['days\u employed']
中的特定值,应更改为
float('Nan')


如果您不知道要更改的单元格的值,或者它经常更改,那么只需使用for循环查找要更改的单元格的索引,然后将
x
设置为该索引。

我不明白代码在说什么,但它是有效的!万岁!