我一直在尝试使用pd.to_datetime
处理Dataframe中的日期列,以获取int类型的月份。
这是使用pandas的Python代码。
print(df["date"].head())
0 Oct
1 Jun
2 15-Oct
3 27-Nov
4 26-Sep
Name: date, dtype: object
在尝试转换为datetime之后,我获得了NAT中的所有值。我该怎么解决?
df["date"]=pd.to_datetime(df["date"],errors='coerce')
print(df["date"].head())
我得到:
0 NaT
1 NaT
2 NaT
3 NaT
4 NaT
Name: date, dtype: datetime64[ns]
运行isNA将返回NAT处的所有值:
print(df["date"].isna().sum())
1000
我计划获得:
0 10
1 06
2 10
3 11
4 09
对于不能转换为datetime和int的值(因为值丢失或无法识别),我计划替换为“未给出日期”
我需要做什么?
2条答案
按热度按时间ecbunoof1#
将
Series.str.extract
与Series.map
一起使用:或者使用
%b
将值转换为日期时间,以匹配月份,并使用Series.dt.strftime
转换为字符串:如果需要整数:
nnt7mjpx2#
您可以在'-'上拆分列,并保留最后一部分:
如果您的区域设置不是英语,您可以用途: