数据帧中列值的条件替换?

2024-06-23 19:18:54 发布

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

我有一个数据帧,我想根据一个条件替换该列中的一些值。我的数据框是这样的

ID    customer_name   arrival_month    leaving_month
1524   ABC              201508           201605 
1185   XYZ              201701           201801
8456   IJK              201801           201902

我在尝试一个简单的手术。我想通过currentmount value=201802更改leaving\u month列中的值,其中leaving\u month>;201802。 我试过了。loc,它给出了下面的错误。你知道吗

df.loc[(df['leaving_month'] > 201802)] = 201802
KeyError: 'leaving_month'

我也试过了np.哪里这也给出了一个错误。你知道吗

df['leaving_month']=np.where(df['leaving_month']>currentmonth, currentmonth)
KeyError: 'leaving_month'

我也尝试过暴力循环

for o in range(len(df)):
            if(df.loc[o,'leaving_month']>currentmonth):
                df.loc[o,'leaving_month']=currentmonth
IndexingError: Too many indexers

有人能给我指出正确的方向,找出我做错了什么,或者提出更好的解决方案吗?这是一个很简单的问题,但不知怎么的,我没能解决。你知道吗


Tags: 数据nameiddf错误npcustomer条件
1条回答
网友
1楼 · 发布于 2024-06-23 19:18:54

您正在替换整行。相反,用.loc设置一个特定的列。请参阅下面解决方案中的第二个索引器。你知道吗

df.loc[df['leaving_month'] > 201802, 'leaving_month'] = 201802
df

退货

     ID customer_name  arrival_month  leaving_month
0  1524           ABC         201508         201605
1  1185           XYZ         201701         201801
2  8456           IJK         201801         201802

您可以在Pandas docs中阅读有关数据帧索引的内容。你知道吗

相关问题 更多 >

    热门问题