标签: resampling

Pandas 将每小时时间序列重新采样为每小时比例时间序列

我正在处理每小时时间序列(日期、时间(小时)、P)并尝试计算每小时每日总“金额”的比例。我知道我可以使用 Pandas 的 resample('D', how='sum') 来计算 P 的每日总和 (DailyP) 但在同一步骤中,我想使用每日 P 来计算每日 P 的比例每小时(因此,P/DailyP)以每小时时间序列结束(即,与原始频率相同)。我不确定这是否可以在 Pandas 术语中称为“重新采样”。这可能从我对术语的使用中显而易见,但我绝对是 Python 或编程方面的新手。如果有人可以建议一种方法来做到这一点,我将不胜感激。谢谢!

time-series resampling pandas

4
推荐指数
1
解决办法
4138
查看次数

重采样还是插值?

我不清楚图像处理中重采样和插值之间的区别。如果我有一个 geotiff 并且我想提高它的分辨率,我应该使用重采样方法,例如最近邻,对吗?例如,我发现 gdalwarp 函数可以做到这一点。
插值方法,即克里金法呢?如果我的数据分布不均匀会更好吗?如果我还想考虑数字高程模型来校正我的图像怎么办?非常感谢您的帮助,并对混淆表示抱歉。

劳拉

interpolation resampling

4
推荐指数
1
解决办法
7602
查看次数

从 Pandas 中的重采样获取索引

我在 Python 中有一个时间序列数据帧,每秒钟频率。我试图聚合数据以获得Speed每分钟的最大值。我正在使用此代码:

df = pd.DataFrame({ 'Speed' : [],
                  'Acceleration' : []
            })
rng = pd.date_range('1/1/2011', periods=72, freq='s')
df['Speed'] = np.random.randn(len(rng))
df['Acceleration'] = np.random.randn(len(rng))
df = df.set_index(rng)
df['Acceleration'].resample("1Min").max()
Run Code Online (Sandbox Code Playgroud)

但是,我有另一列Speed,我有兴趣Acceleration在每分钟将它的相关值设置为最大值。例如,假设最高Acceleration13:15发生在13时15分10秒,这是1.2米/秒^ 2。同一秒,速度为5m/s。除了最大加速之外,我还想获得那个速度。谢谢。

python time-series resampling pandas

4
推荐指数
1
解决办法
1279
查看次数

ValueError:使用pandas DataFrame在python中数组的长度必须相同

我是 python 的新手,使用 Pandas 包 (python3.6) 中的 Dataframe。

我像下面的代码一样设置它,

df = DataFrame({'list1': list1, 'list2': list2, 'list3': list3, 'list4': list4, 'list5': list5, 'list6': list6})
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误,如 ValueError: arrays must all be same length

所以,我检查阵列的所有长度,list1list2比其他列表(1点)更多的数据。如果我想使用 将 1 个数据添加到其他 4 个列表(list3, list4, list5, list6pd.resample,那么我应该如何编写代码...?

此外,这些列表是 1 分钟的时间序列列表。

有人有想法或帮助我吗?

提前致谢。

编辑 所以我改变了 EdChum 所说的。并在前面添加了时间表。就像下面一样。

2017-04-01 0:00 895.87  730 12.8    4   19.1    380
2017-04-01 0:01 894.4   730 12.8    4   19.1    380
2017-04-01 0:02 893.08  730 …
Run Code Online (Sandbox Code Playgroud)

resampling dataframe python-3.x pandas

4
推荐指数
1
解决办法
3万
查看次数

熊猫每月重新采样第 15 天

我正在尝试重新采样到每月的值,但关于第 15 天

我检查了时间序列偏移量文档,但只有

M 月结束频率 SM 半月结束频率(15 日和月末) MS 月开始频率 SMS 半月开始频率(第 1 和 15 日)

而我只需要第 15 天

就像是

2000-01-15 8.7
2000-02-15 6.9
2000-03-15 15.8
2000-04-15 12.4
Run Code Online (Sandbox Code Playgroud)

我试过 pd.offsets.MonthBegin 和 MonthOffset 没有结果

python resampling pandas

4
推荐指数
1
解决办法
2619
查看次数

Pandas 使用其他不规则时间列表重新采样和插入不规则时间序列

我从 2 个不同的传感器收集了数据,这些传感器以非均匀间隔异步运行。我想将来自传感器 1 的数据插入到来自传感器 2 的时间戳中。我找到了一种使用 Pandas 进行此操作的方法,包括首先创建一个组合时间序列,对其进行插值,然后将插入的时间序列与第二个传感器的时间序列相结合只带出相交的时间。有没有更 Pythonic(或 Pandaic)的方式来更有效地做到这一点。这是使用我上面描述的方法的示例代码:

import numpy as np
from matplotlib import pyplot as plt
import datetime
import pandas as pd

rand_secs = np.sort(np.random.randint(1, high=60,size=10))
times = [pd.datetime(2019, 5, 23,9, x) for x in rand_secs]
frame1 = pd.DataFrame(index = times,
                      data = np.sin(rand_secs/60*2*np.pi))
ax1 = frame1.plot(marker='+')
plt.xlim(pd.datetime(2019, 5, 23,9, 0), pd.datetime(2019, 5, 23,9, 59))
plt.ylim(-1.1,1.1)

times2 = [pd.datetime(2019, 5, 23,9, x) for x in np.sort(np.random.randint(1, high=60,size=10))]
frame2 = pd.DataFrame(index = times2)

frame12_combined = pd.merge(frame1, …
Run Code Online (Sandbox Code Playgroud)

python interpolation time-series resampling pandas

4
推荐指数
1
解决办法
1645
查看次数

列车测试分割后不平衡数据的欠采样

我正在做一个数据不平衡的项目。我想使用随机欠采样来平衡数据。我很困惑是否应该在测试列车分割后进行欠采样,或者我应该先进行欠采样,然后再进行列车测试分割?

我的方法:

  1. 我使用训练测试分割来获取:X_train、y_train 用于训练,X_test 和 y_test 用于测试。
  2. 我将 X_train 和 y_train 组合成一个数据集并进行欠采样。
  3. 欠采样后,我根据 F1 分数进行交叉验证和模型选择,并使用 X_test.,Y_test 进行预测。

我的做法正确吗?如果我错了,请纠正我。

machine-learning resampling train-test-split

4
推荐指数
1
解决办法
3786
查看次数

SMOTE - 无法将字符串转换为浮点数

我想我在下面的代码中遗漏了一些东西。

from sklearn.model_selection import train_test_split
from imblearn.over_sampling import SMOTE


# Split into training and test sets

# Testing Count Vectorizer

X = df[['Spam']]
y = df['Value']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=40)
X_resample, y_resampled = SMOTE().fit_resample(X_train, y_train)


sm =  pd.concat([X_resampled, y_resampled], axis=1)
Run Code Online (Sandbox Code Playgroud)

当我收到错误时

ValueError:无法将字符串转换为浮点数:---> 19 X_resampled,y_resampled = SMOTE().fit_resample(X_train,y_train)

数据示例是

Spam                                             Value
Your microsoft account was compromised             1
Manchester United lost against PSG                 0
I like cooking                                     0
Run Code Online (Sandbox Code Playgroud)

我会考虑转换训练集和测试集来解决导致错误的问题,但我不知道如何应用于两者。我在谷歌上尝试了一些例子,但它没有解决问题。

python sampling resampling pandas smote

4
推荐指数
1
解决办法
1万
查看次数

使用python重新采样和合并数据框

嗨,我用此代码创建了dataFrame字典

import os
import pandas 
import glob

path="G:\my_dir\*"
dataList={}

for files in glob.glob(path):
    dataList[files]=(read_csv(files,sep=";",index_col='Date'))
Run Code Online (Sandbox Code Playgroud)

词典中存在的不同数据帧具有不同的时间样本。dataFrame(A)的示例是

Date               Volume   Value 
2014-01-04 06:00:02 6062   108000.0
2014-01-04 06:06:05 6062   107200.0
2014-01-04 06:12:07 6062   97400.0
2014-01-04 06:18:10 6062   99200.0
2014-01-04 06:24:12 6062   91300.0
2014-01-04 06:30:14 6062   84100.0
2014-01-04 06:36:17 6062   57000.0
Run Code Online (Sandbox Code Playgroud)

dataFrame(B)的示例是

Date                Volume Value 
2014-01-04 05:52:50  6062   4.7
2014-01-04 05:58:53  6062   4.7
2014-01-04 06:04:56  6062   4.9 
2014-01-04 06:10:58  6062   5.1
2014-01-04 06:17:01  6062   5.2
2014-01-04 06:23:03  6062   5.2
2014-01-04 06:29:05  6062   5.5
2014-01-04 06:35:08 …
Run Code Online (Sandbox Code Playgroud)

python csv resampling merging-data pandas

3
推荐指数
1
解决办法
1123
查看次数

熊猫:重新采样数据框列,获取对应于最大值的离散特征

样本数据:

import pandas as pd
import numpy as np
import datetime

data = {'value': [1,2,4,3], 'names': ['joe', 'bob', 'joe', 'bob']}
start, end = datetime.datetime(2015, 1, 1), datetime.datetime(2015, 1, 4)
test = pd.DataFrame(data=data, index=pd.DatetimeIndex(start=start, end=end, 
       freq="D"), columns=["value", "names"])
Run Code Online (Sandbox Code Playgroud)

给出:

          value names
2015-01-01  1   joe
2015-01-02  2   bob
2015-01-03  4   joe
2015-01-04  3   bob
Run Code Online (Sandbox Code Playgroud)

我想通过“ 2D”重新采样并获得最大值,例如:

df.resample('2D')
Run Code Online (Sandbox Code Playgroud)

预期结果应为:

          value names
 2015-01-01 2   bob
 2015-01-03 4   joe
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

python resampling pandas argmax

3
推荐指数
1
解决办法
774
查看次数