小编use*_*523的帖子

从一天开始的n天将Pandas DataFrame分组

我刚刚发现了熊猫的力量而我喜欢它,但我无法弄清楚这个问题:

我有一个DataFrame df.head():

   lon   lat  h  filename                  time
0  19.961216  80.617627    -0.077165     60048 2002-05-15 12:59:31.717467
1  19.923916  80.614847    -0.018689     60048 2002-05-15 12:59:31.831467
2  19.849396  80.609257    -0.089205     60048 2002-05-15 12:59:32.059467
3  19.830776  80.607857     0.076485     60048 2002-05-15 12:59:32.116467
4  19.570708  80.588183     0.162943     60048 2002-05-15 12:59:32.888467
Run Code Online (Sandbox Code Playgroud)

我想将我的数据分组为九天

gb = df.groupby(pd.TimeGrouper(key='time', freq='9D'))
Run Code Online (Sandbox Code Playgroud)

第一组:

2002-05-15 12:59:31.717467       lon   lat  h filename                  time
0    19.961216  80.617627    -0.077165     60048 2002-05-15 12:59:31.717467
1    19.923916  80.614847    -0.018689     60048 2002-05-15 12:59:31.831467
2    19.849396  80.609257    -0.089205     60048 2002-05-15 12:59:32.059467
3    19.830776 …
Run Code Online (Sandbox Code Playgroud)

python pandas

9
推荐指数
1
解决办法
1856
查看次数

Python:加载 kmeans 训练数据集并使用它来预测新数据集

我有大量数据,我想对其进行 kmean 分类。数据集太大了,我无法将文件加载到内存中。

我的想法是像训练数据集一样对数据集的某些部分运行分类,然后将分类应用到数据集的其余部分。

import pandas as pd
import pickle
from sklearn.cluster import KMeans

frames = [pd.read_hdf(fin) for fin in ifiles]
data = pd.concat(frames, ignore_index=True, axis=0)
data.dropna(inplace=True)

k = 12
x  = pd.concat(data['A'], data['B'], data['C'], axis=1, keys=['A','B','C'])
model = KMeans(n_clusters=k, random_state=0, n_jobs = -2)
model.fit(x)

pickle.dump(model, open(filename, 'wb'))
Run Code Online (Sandbox Code Playgroud)

x 看起来像这样:

array([[-2.26732099,  0.24895614,  2.34840191],
   [-2.26732099,  0.22270912,  1.88942378],
   [-1.99246557,  0.04154312,  2.63458941],
   ..., 
   [-4.29596287,  1.97036309, -0.22767511],
   [-4.26055474,  1.72347591, -0.18185197],
   [-4.15980382,  1.73176239, -0.30781225]])
Run Code Online (Sandbox Code Playgroud)

该模型如下所示:

KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
n_clusters=12, n_init=10, n_jobs=-2, precompute_distances='auto',
random_state=0, tol=0.0001, …
Run Code Online (Sandbox Code Playgroud)

python k-means scikit-learn

6
推荐指数
1
解决办法
6646
查看次数

标签 统计

python ×2

k-means ×1

pandas ×1

scikit-learn ×1