熊猫Datetime格式转换错误yyyy-mm-dd到yyyy-mm或yyyy / mm作为字符串

时间:2019-07-24 15:24:17

标签: pandas datetime

我有大量yyyy-mm-dd形式的数据,我需要yyyy-mm(字符串格式)形式的数据,因此我可以绘制每月的条形图

我没有收到任何错误,但是对于某些值它输出了不正确的数据,而对于其他值却输出了正确的值

1.0000
2.0000
3.0000
9.8400
7.3200
8.0000

csv文件中的数据为yyyy-mm-dd,但以dd / mm / yyyy的形式输出。修改数据后,它有时以mm / yyyy或dd / yyyy输出数据。我理想地需要字符串格式的数据

1 个答案:

答案 0 :(得分:1)

尝试使用pd.to_datetime()to_periodstrftime更改日期格式

df = pd.DataFrame(
    {
        "Collection_End_Date": ["2019-01-07 12:00:00", "2019-01-07 12:00:00", "2019-02-08 12:00:00", "2019-01-05 12:00:00", "2019-01-05 12:00:00"]
    }
)

df['Collection_End_Date'] = pd.to_datetime(df['Collection_End_Date'])
df['month_year'] = df['Collection_End_Date'].dt.to_period('M')
    Collection_End_Date month_year
0   2019-01-07 12:00:00   2019-01
1   2019-01-07 12:00:00   2019-01
2   2019-02-08 12:00:00   2019-02
3   2019-01-05 12:00:00   2019-01
4   2019-01-05 12:00:00   2019-01

如果要替换-用/替换日期,则可以

df["Collection_End_Date"] = pd.to_datetime(df["Collection_End_Date"])
df['month_year'] = df['Collection_End_Date'].dt.to_period('M')
df['month_year'] = df['month_year'].dt.strftime('%Y/%m')
    Collection_End_Date  month_year
0   2019-01-07 12:00:00    2019/01
1   2019-01-07 12:00:00    2019/01
2   2019-02-08 12:00:00    2019/02
3   2019-01-05 12:00:00    2019/01
4   2019-01-05 12:00:00    2019/01