【问题标题】:Error when sum up sales in a single month and modify the month to every first day of that month总结单月销售额并将月份修改为该月的每一天时出错
【发布时间】:2019-12-27 04:34:33
【问题描述】:

我正在尝试分析每个月的销售额,并尝试总结每个月的销售额并将日期显示为该月的第一天。但是,将我的订单日期转换为该月的第一天时出现此错误,订单日期变为:

"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

订单日期是每月的第一天,销售额将是该特定月份的总销售额。

我应该如何修改我的代码以达到结果?

非常感谢!

【问题讨论】:

  • 请将您问题中的所有数据作为文本而不是图像。
  • @DYZ 哦好的对不起我会修改它
  • 您能否也包括您的原始数据帧输出?
  • @RSM 嗨,我的原始数据框在那里。

标签: python pandas


【解决方案1】:

你可以试试

df_sales['Order Date'] = pd.to_datetime(df_sales['Order Date'])
df_sales['Order Date'] = df_sales['Order Date'] - pd.offsets.MonthBegin()

【讨论】:

    【解决方案2】:

    好的,谢谢大家给我的想法和灵感,我终于发现错误是我的数据集,有很多空白字段我没有正确清理。我的代码有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多