我正在尝试分析每个月的销售额,并试图汇总每个月的销售额并将日期显示为该月的第一天。但是,将订购日期转换为该月的每个第一天时,都会出现此错误,订购日期变为:
"2018.0 - 9.0 - 01"
我的代码是
df_sales['Order Date'] = df_sales['Order Date'].dt.year.astype('str') + '-' + df_sales['Order Date'].dt.month.astype('str') + '-01'
df_sales['Order Date'] = pd.to_datetime(df_sales['Order Date'])
当我进行错误检查时:
import pandas as pd
import io
print(df_sales[df_sales['Order Date'].str.len() > 7])
我的结局如上
Order Date
2018.0-09.0-01
2018.0-03.0-01
2017.0-04.0-01
my original data is this:
2018-09-21
2018-09-03
2018-03-05
类似这样的东西。
我希望我的数据变成这样:
Order Date Sales
2018-09-01 5466
2017-03-01 6466
(订购日期为该月的每个第一天),销售额就是该特定月份的总销售额。
我应该如何修改代码以获得结果?
非常感谢!
答案 0 :(得分:0)
您可以尝试
df_sales['Order Date'] = pd.to_datetime(df_sales['Order Date'])
df_sales['Order Date'] = df_sales['Order Date'] - pd.offsets.MonthBegin()
答案 1 :(得分:0)
好,谢谢大家给我的想法和启发,我终于发现错误是我的数据集,有很多空白字段我没有正确清理。我的代码有效。