使用pandas添加和迭代新行以清空数据帧以进行群集

时间:2018-04-29 15:35:56

标签: python pandas dataframe

我目前正在处理关于每个RFM_class集群的大量数据。 rfm类有125个不同的值,范围从111555,我的数据帧的总行数当前被采样到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

1 个答案:

答案 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);

希望这会有所帮助。