我把2011年12月29日的日期作为字符串,我只需要年份,所以我写这个函数只提取年份,但我得到了
“ValueError:无法将浮点NaN转换为整数”
似乎我在某个地方有Nan,我能想到的唯一解决方案是用Nan删除行,但我不能这样做,因为我需要其他列的数据
def get_year(date):
year = ''
try:
year = date[-4:]
except TypeError:
year = str(date)[0:4]
return (year).astype(int)
使用此代码时,get_year函数起作用
for i in df.index:
if (not pd.isna(df['yearOpened'][i]) and get_year(df['yearOpened'][i]) > 1955):
print('something')
我正在使用.loc,想知道如何跳过Nan使用.loc
`df.loc[get_year(df['yearOpened'])]`
您可以使用Python内置的datetime库轻松地从字符串中获取年份
或
您可以使用pandas.to_datetime函数,该函数将为您处理nan值
编辑(回应评论)
要获得所有坏行的数据帧,只需索引出从
pd.to_datetime(df['dates'], errors='coerce')
操作返回NaT
的所有行相关问题 更多 >
编程相关推荐