1

对于 pandas DataFrame 中的数据,无法使用 datetime64 将“YYYY-MM”字符串转换为 YYYY-MM 日期时间。

当存储在标量或数组中时,np.datetime64 用于将 'YYYY-MM' 的日期字符串转换为日期时间,但当通过 DateFrame 访问相同的数据时则不行。

我想要做的是将列日期(格式:YYYY-MM)转换为日期时间数据(添加或不添加另一列)。

csv文件数据:

month, volume
2019-01, 100
2019-02, 110

示例代码:

import pandas as pd
import numpy as np

df=pd.read_csv (r'file location')
df["date"]=df["month"].apply(np.datetime64)

# Input (month): 2013-01
# Expected output (date): 2013-01
# Actual output (date): 2013-01-01

因此,datetime64 将 YYYY-MM 更改为 YYYY_MM-01(另外,YYYY 转换为 YYYY-01-01)

4

1 回答 1

1

也许您正在寻找 pd.Period:

In [11]: df.date.apply(pd.Period, freq='M')
Out[11]:
0   2019-01
1   2019-02
Name: date, dtype: object

同样,但没有应用:

In [12]: pd.to_datetime(df.date).dt.to_period(freq='M')
Out[12]:
0   2019-01
1   2019-02
Name: date, dtype: object
于 2019-05-15T20:05:25.353 回答