我是熊猫的新手,正在做我的第一步。即使进行研究也没有任何帮助,但我很坚持,很可能是我没有使用正确的术语。
我具有以下格式的初始数据
NVARCHAR(MAX)
这代表直接从计数器读取的我的耗电量的累计总值。
我现在想根据此数据计算每天的消费量。
我正在尝试按日期重新采样数据:
datetime counter
2019-06-01 17:57:54 159411631
2019-06-01 17:57:54 159411642
2019-06-01 17:57:54 159411642
2019-06-01 17:58:03 159411642
2019-06-01 17:58:03 159411643
这不起作用,因为熊猫不知道如何减去日期列。我不知道如何只选择一列...而且我不确定明确选择一列是熊猫式的做法。
从上述数据中获取每日消费量的正确方法是什么?
res = df.resample('D').max() - df.resample('D').min()
答案 0 :(得分:2)
使用clamped并将参数--------------------------
| user | count |
--------------------------
| driver | 58 |
| passenger | 32 |
--------------------------
添加到on
:
resample
或创建df['datetime'] = pd.to_datetime(df['datetime'])
res = (df.resample('D', on='datetime')['counter'].max() -
df.resample('D', on='datetime')['counter'].min())
:
DatetimeIndex
df['datetime'] = pd.to_datetime(df['datetime'])
df = df.set_index('datetime')
res = (df.resample('D').max() -
df.resample('D').min()).reset_index().rename(columns={'counter':'consumption'})
最后将df['datetime'] = pd.to_datetime(df['datetime'])
df = df.set_index('datetime')
res = df.resample('D').agg(lambda x: x.max() - x.min())
转换为Series
:
DataFrame