使用熊猫,如何重新采样并应用函数以添加列?

时间:2019-06-12 08:13:51

标签: python pandas

我是熊猫的新手,正在做我的第一步。即使进行研究也没有任何帮助,但我很坚持,很可能是我没有使用正确的术语。

我具有以下格式的初始数据

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()

1 个答案:

答案 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