Python转换列中的不同日期格式

Python转换列中的不同日期格式,python,pandas,datetime,date-formatting,Python,Pandas,Datetime,Date Formatting,我正在尝试隐藏一个具有不同日期格式的列 例如: 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 201

我正在尝试隐藏一个具有不同日期格式的列

例如:

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日等等

我已尝试使用此代码首先将我的列转换为datetime:

df['month'] =  pd.to_datetime(df['month'], format='%Y-%m-%d')
但它返回一个float64:

出去

在我的CSV输出中,月份格式已更改为01/05/2016 00:00:00。你能帮我把月份和年份改成8月18日吗


谢谢

我想你有一个熊猫数据框。在这种情况下,您可以使用:


如您所见,这会导致一系列数据类型
对象
,这通常是低效的。一个更好的方法是将日期设置为月的最后一天,并在内部维护一个由整数表示的
datetime
序列。

是的,我有一个数据帧。不幸的是,你的建议对我不起作用。我得到
ValueError:要组装映射,至少需要指定[year,month,day],[day,year]缺失
有点奇怪。我从你的问题中复制了输入数据。恐怕,如果没有准确的输入数据,我将无能为力。我相信这里的输入数据不是OP在问题中提到的浮点类型。
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
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