Python 根据其他列中的子字符串更改列值

Python 根据其他列中的子字符串更改列值,python,pandas,Python,Pandas,在Pandas中,我试图通过选中包含日期的列Age来编辑数据框中的列Year,例如Mon Dec 28 11:19:42 CST 2007 ID年龄年 1周一12月28日11:19:42 CST 2007 NaN 2周二9月28日12:39:41 CST 2008南部 我试图通过使用df.loc[df[df.Age.str.contains(“2007”)],'Year']=2007来实现这一点,但是,这会返回错误ValueError:无法将大小为20的序列复制到尺寸为11359的数组轴上 预期

在Pandas中,我试图通过选中包含日期的列
Age
来编辑数据框中的列
Year
,例如
Mon Dec 28 11:19:42 CST 2007

ID年龄年

1周一12月28日11:19:42 CST 2007 NaN

2周二9月28日12:39:41 CST 2008南部

我试图通过使用
df.loc[df[df.Age.str.contains(“2007”)],'Year']=2007来实现这一点,但是,这会返回错误
ValueError:无法将大小为20的序列复制到尺寸为11359的数组轴上

预期结果:

ID年龄年

1周一12月28日11:19:42 CST 2007

2周二9月28日12:39:41 CST 2008南部

df[df['Age'].str.contains(“2007”)]['Year']=2007
也不起作用。有人能帮我解决我该怎么做吗

提前谢谢

您可以使用:

或:

另一种可能的解决办法是:


你需要
df.loc[df.Age.str.contains(“2007”),'Year']=2007
。我是个傻瓜。非常感谢。
df.loc[df.Age.str.endswith("2007"), 'Year'] = 2007
print (df)
   ID                           Age    Year
0   1  Mon Dec 28 11:19:42 CST 2007  2007.0
1   2  Tue Sep 28 12:39:41 CST 2008     NaN
df.loc[df.Age.str.contains("2007"), 'Year'] = 2007
print (df)
   ID                           Age    Year
0   1  Mon Dec 28 11:19:42 CST 2007  2007.0
1   2  Tue Sep 28 12:39:41 CST 2008     NaN
df.Year = df.Year.mask(df.Age.str.endswith("2007"), 2007)
print (df)
   ID                           Age    Year
0   1  Mon Dec 28 11:19:42 CST 2007  2007.0
1   2  Tue Sep 28 12:39:41 CST 2008     NaN