我目前正在处理关于每个RFM_class集群的大量数据。 rfm类有125个不同的值,范围从111
到555
,我的数据帧的总行数当前被采样到10000
行,以用于脚本的试用。
我正在尝试做的事情背后的逻辑是,采用每个RFM_class(125个不同的值),并为RFM_class的每个子集执行clustering
方法,方法是为每个RFM_class循环它们以获取{带有空数据框的{1}}列,然后将该值再次附加到空数据框。空数据框将合并到我的主表。
这是主表的快照,我只缩小为4列,原点是11列。
cluster_class
我正在做的事情在集群之前还不够远,所以我真的陷入了循环每一个df_test
RFM_class customer_id num_orders recent_day amount_order
555 1 1489 0 18539000
555 2 72 3 1069000
145 3 13 591 1350000
555 4 208 0 2119000
445 5 40 9 698000
这是我在过去几天要做的事情,只尝试采取每个RFM_class
RFM_class
但结果并不像预期的那样,因为执行rfm_list = list(set(df_test['rfm']))
core_col = ['num_orders','recent_day','amount_order']
cl_class = []
for row in rfm_list:
a=pd.DataFrame(df_test[core_col][df_test.rfm==row],columns=core_col)
cl_class.append(a)
cl_class
似乎没有在我的空数据框中添加新行。
在熊猫上有任何功能吗?目前正在使用python 3.0
答案 0 :(得分:1)
您可以使用groupby对值进行聚类。 例如:考虑这个示例csv文件,您希望按列水果分组:
Fruit,Date,Name,Number
Apples,10/6/2016,Bob,7
Apples,10/6/2016,Bob,8
Apples,10/6/2016,Mike,9
Apples,10/7/2016,Steve,10
Apples,10/7/2016,Bob,1
Oranges,10/7/2016,Bob,2
Oranges,10/6/2016,Tom,15
Oranges,10/6/2016,Mike,57
Oranges,10/6/2016,Bob,65
Oranges,10/7/2016,Tony,1
Grapes,10/7/2016,Bob,1
Grapes,10/7/2016,Tom,87
Grapes,10/7/2016,Bob,22
Grapes,10/7/2016,Bob,12
Grapes,10/7/2016,Tony,15
迭代群集的示例代码:
import pandas as pd;
df = pd.read_csv("filename.csv");
grouped = df.groupby("Fruit");
for name, group in grouped:
print(name);
希望这会有所帮助。