Python 为集群目的,使用pandas向空数据帧添加和迭代新行

Python 为集群目的,使用pandas向空数据帧添加和迭代新行,python,pandas,dataframe,Python,Pandas,Dataframe,我目前正在对每个RFM_类进行集群,处理大量数据。rfm类有125个不同的值,范围从111到555,我的数据帧的总行当前被采样到10000行中,用于脚本的试用 我试图做的事情背后的逻辑是,获取每个RFM_类(125个不同的值),对RFM_类的每个子集执行clustering方法,方法是为每个RFM_类循环它们,以获得带有空数据帧的cluster_class列,然后再次将值附加到空数据帧。空数据框将合并到我的主表中。 这是主表的快照,我只缩小为4列,原点是11列 df_test RFM_class

我目前正在对每个RFM_类进行集群,处理大量数据。rfm类有125个不同的值,范围从
111
555
,我的数据帧的总行当前被采样到
10000
行中,用于脚本的试用

我试图做的事情背后的逻辑是,获取每个RFM_类(125个不同的值),对RFM_类的每个子集执行
clustering
方法,方法是为每个RFM_类循环它们,以获得带有空数据帧的
cluster_class
列,然后再次将值附加到空数据帧。空数据框将合并到我的主表中。 这是主表的快照,我只缩小为4列,原点是11列

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_类
这就是我在过去几天里试图做的,只尝试使用每个
RFM_类

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
但结果并不像预期的那样,因为执行
append
似乎并没有在空数据框中添加新行。
在熊猫身上有这样做的功能吗?当前使用python 3.0时,可以使用groupby对值进行集群。 对于EG:考虑这个示例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);

希望这有帮助

你说的是什么空数据帧?预期的结果是什么?@Goyo很抱歉不够清晰,我想在这个数据集上进行聚类。预计将有一个新列,其中包含每个
RFM\u类的集群类
。所以我所做的是为集群计算创建一个新的空数据框。但是我无法在每个
RFM\u类中进行集群迭代,对于集群,您是否在pandas中尝试过groupby函数?谢谢你!差一点就搞定了,试了这个
df_test.groupby(['rfm_class']).sum()
但是我应该替换
sum
函数,知道我应该用什么函数来替换
sum()
?很抱歉,我对python还不太熟悉,bt真的打开了学习python的新源代码,按函数分组是一个完美的开始,谢谢@cypher