[英]Conditional replacing of column values in dataframe?
我有一個數據框,我想根據條件替換該列中的某些值。 我的數據框看起來像這樣
ID customer_name arrival_month leaving_month
1524 ABC 201508 201605
1185 XYZ 201701 201801
8456 IJK 201801 201902
我正在嘗試一個簡單的操作。 我想通過當月值= 201802更改Leave_month列中的值,其中Leave_month> 201802。 我已經嘗試過.loc,它給出了以下錯誤。
df.loc[(df['leaving_month'] > 201802)] = 201802
KeyError: 'leaving_month'
我也嘗試過np.where這也給一個錯誤。
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
有人可以指示我正確的方向,還是找出我做錯了什么,或提出更好的解決方案? 這是一個非常簡單的問題,但是我卻無法解決。
您要替換整行。 而是使用.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文檔中閱讀有關DataFrame索引的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.