我正在尝试隐藏具有不同日期格式的列。
例如:
month
2018-01-01 float64
2018-02-01 float64
2018-03-01 float64
2018-03-01 00:00:00 float64
2018-04-01 01:00:00 float64
2018-05-01 01:00:00 float64
2018-06-01 01:00:00 float64
2018-07-01 01:00:00 float64
我想将列中的所有内容都转换为仅月份和年份。例如,我想要1月18日,2月18日,3月18日等。
我尝试使用此代码先将我的专栏隐瞒日期时间:
df['month'] = pd.to_datetime(df['month'], format='%Y-%m-%d')
但是它返回一个float64:
出
month
2018-01-01 00:00:00 float64
2018-02-01 00:00:00 float64
2018-03-01 00:00:00 float64
2018-04-01 01:00:00 float64
2018-05-01 01:00:00 float64
2018-06-01 01:00:00 float64
2018-07-01 01:00:00 float64
在我的CSV输出中,月份格式已更改为01/05/2016 00:00:00。您能帮我隐蔽到仅仅一个月和一年吗,例如8月18日。
谢谢
答案 0 :(得分:1)
我假设您有一个Pandas数据框。在这种情况下,您可以使用pd.Series.dt.to_period
:
Foo
如您所见,这会导致一系列dtype fooDAO.addFoo(name)
,通常效率不高。一个更好的主意是将日期设置为该月的最后一天,并维护内部由整数表示的s = pd.Series(['2018-01-01', '2018-02-01', '2018-03-01',
'2018-03-01 00:00:00', '2018-04-01 01:00:00'])
res = pd.to_datetime(s).dt.to_period('M')
print(res)
0 2018-01
1 2018-02
2 2018-03
3 2018-03
4 2018-04
dtype: object
系列。