我有一个看起来像这样的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'
基本上,我想按天对所有这些时间进行排序,因为它全天都有时间戳。我不在乎一天中什么时候发生什么不同的事情,我只想获取每天的“消耗”总数。
首先添加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')
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。