如何在if语句中更改单元格的内容?

2024-10-01 22:27:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

有类似于row in df['days_employed'] = float('Nan')的东西吗


Tags: indfforif人员typenanfloat
2条回答

因为这在我看来像熊猫,所以您可以通过对整个列应用条件,然后将这些单元格指定给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]时,您指定的是整个列,这就是为什么整个days_employed被更改为NaN的原因。试试这个,让我知道它是否有效:

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

注:x是['days_employed']中应更改为float('Nan')的特定值

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

相关问题 更多 >

    热门问题