gpt4 book ai didi

python - Pandas 重新采样不返回任何内容

转载 作者:行者123 更新时间:2023-12-01 03:13:19 27 4
gpt4 key购买 nike

我正在学习使用 pandas resample() 函数,但是,以下代码不会按预期返回任何内容。我每天对时间序列进行重新采样。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

range = pd.date_range('2015-01-01','2015-12-31',freq='15min')
df = pd.DataFrame(index = range)

df['speed'] = np.random.randint(low=0, high=60, size=len(df.index))
df['distance'] = df['speed'] * 0.25
df['cumulative_distance'] = df.distance.cumsum()

print df.head()

weekly_summary = pd.DataFrame()
weekly_summary['speed'] = df.speed.resample('D').mean()
weekly_summary['distance'] = df.distance.resample('D').sum()

print weekly_summary.head()

输出

                     speed  distance  cumulative_distance
2015-01-01 00:00:00 40 10.00 10.00
2015-01-01 00:15:00 6 1.50 11.50
2015-01-01 00:30:00 31 7.75 19.25
2015-01-01 00:45:00 41 10.25 29.50
2015-01-01 01:00:00 59 14.75 44.25

[5 rows x 3 columns]
Empty DataFrame
Columns: [speed, distance]
Index: []

[0 rows x 2 columns]

最佳答案

根据您的 pandas 版本,执行此操作的方式会有所不同。

在 pandas 0.19.0 中,您的代码按预期工作:

In [7]: pd.__version__
Out[7]: '0.19.0'

In [8]: df.speed.resample('D').mean().head()
Out[8]:
2015-01-01 28.562500
2015-01-02 30.302083
2015-01-03 30.864583
2015-01-04 29.197917
2015-01-05 30.708333
Freq: D, Name: speed, dtype: float64

在旧版本中,您的解决方案可能不起作用,但至少在 0.14.1 中,您可以对其进行调整:

>>> pd.__version__
'0.14.1'
>>> df.speed.resample('D').mean()
29.41087328767123
>>> df.speed.resample('D', how='mean').head()
2015-01-01 29.354167
2015-01-02 26.791667
2015-01-03 31.854167
2015-01-04 26.593750
2015-01-05 30.312500
Freq: D, Name: speed, dtype: float64

关于python - Pandas 重新采样不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42682696/

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