我有一个具有这种结构的数据框:
我要:
IF Year >= 2010 then 2010 ELSE Year
(2010年以下为原始值)。
使用此代码,它适用于2010年及以后的值,但仅从原始值中插入2003年(第一行)。
def case_when(row):
if (row['Year'] >= 2010) : return 2010
else:
return df_year['Year']
df_year['Year'] = df_year.apply(case_when, axis=1)
答案 0 :(得分:0)
这可能有效:
df['Year'] = [min(x, 2010) for x in df['Year']]
答案 1 :(得分:0)
当numpy中的np.where
使用矢量化方式时,您不应使用apply:
import numpy as np
...
df_year['Year'] = np.where(df_year['Year'] >= 2010, 2010, df_year['Year'])