熊猫列中的日期格式

时间:2019-07-19 19:53:45

标签: python pandas datetime merge type-conversion

我有2个两个数据帧。

Date       thing
201712.0    1
201801.0    2

“日期”列为float64类型,我试图将其分别转换为日期12/1/2017和1/1/2018。

Date        thing2
12/16/2017    2
1/16/2018     3

此处的“日期”列是对象类型,我希望也可以转换为12/1/2017和1/1/2018。这里的想法是在之后进行pd.merge。

2 个答案:

答案 0 :(得分:2)

您需要:

df['Date'] = pd.to_datetime(df['Date'], format='%Y%m') + pd.Timedelta(days=16)

输出:

        Date    thing
0   2017-12-16  1
1   2018-01-16  2

答案 1 :(得分:1)

使用pandas.to_datetime转换原始数据帧的'Date'列:

df1 = pd.DataFrame([[201712.0, 1], [201801.0, 2]], columns=["Date", "thing"])
df2 = pd.DataFrame([["12/16/2017", 2], ["1/16/2018", 3]], columns=["Date", "thing2"])

df1['Date'] = pd.to_datetime(df1['Date'].astype(str), format='%Y%m.0')
df2['Date'] = pd.to_datetime(df2['Date']).apply(lambda x : x.replace(day=1))

在第一个数据帧中,'Date'列被转换为字符串类型(.astype(str)),以便使用格式字符串。
在第二个数据帧中,apply函数用于将月份中的日期从开始时的第一天重置为第一天。