开发者社区> 问答> 正文

收集每天的所有交易并报告当天的总支出

我有一个看起来像这样的DataFrame

date Burned 8/11/2019 7:00 0.0 8/11/2019 7:00 10101.0 8/11/2019 8:16 5.2

我有以下代码:

import pandas as pd

import numpy as np

df = pd.read_csv("../example.csv")

df = df.assign(Burned = df['Quantity'])

df.loc[df['To'] != '0x0000000000000000000000000000000000000000', 'Burned'] = 0.0

df['cum_sum'] = df['Burned'].cumsum()

df['percent_burned'] = df['cum_sum']/df['Quantity'].max()*100.0

a=pd.concat([df['DateTime'], df['Burned']], axis=1, keys=['date', 'Burned'])

b=a.groupby(df.index.date).count()

但是我得到这个错误: AttributeError: 'RangeIndex' object has no attribute 'date'

基本上,我想按天对所有这些时间进行排序,因为它全天都有时间戳。我不在乎一天中什么时候发生什么不同的事情,我只想获取每天的“消耗”总数。

展开
收起
游客6qcs5bpxssri2 2019-09-22 15:25:41 1423 0
1 条回答
写回答
取消 提交回答
  • 首先添加parse_dates=['DateTime']到read_csv要转换的列Datetime:

    df = pd.read_csv("../example.csv", parse_dates=['DateTime'])

    或第一栏:

    df = pd.read_csv("../example.csv", parse_dates=[0])

    在您的解决方案中是date列,因此需要Series.dt.date使用sum:

    b = a.groupby(a['date'].dt.date) ['Burned'].sum().reset_index(name='Total')

    2019-09-22 15:26:44
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
基于数据资产全生命周期估值与实践报告 立即下载
2016钱盾安全报告(8月版) 立即下载
如何完成一份像样的互联网金融APP安全检测报告 立即下载