gpt4 book ai didi

python - 使用 pandas,如何重新采样并应用函数来添加列?

转载 作者:行者123 更新时间:2023-12-01 00:51:18 26 4
gpt4 key购买 nike

我对 pandas 完全陌生,正在迈出第一步。即使研究没有任何结果,我也陷入困境,很可能我没有使用正确的术语。

我有以下形式的初始数据

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

这不起作用,因为 pandas 不知道如何减去日期列。我不知道如何只选择一列...而且我不确定明确选择一列是 pandas 的方式。

如何从上述数据中获取每日消耗量?

      date  consumption
2019-06-01 3968
2019-06-02 9491
2019-06-03 20444

最佳答案

使用to_datetime并将参数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:

res = res.reset_index(name='consumption')
print (res)
datetime consumption
0 2019-06-01 12

关于python - 使用 pandas,如何重新采样并应用函数来添加列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56557539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com