pandas进行分组统计

博客介绍了获取foursquare中每个用户每个签到地点的频次的方法,可使用pandas的groupby方法进行统计,最后将userId、venueId和频次写入csv文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要获取foursquare中每个用户每个签到地点的频次

可以用到pandas中groupby方法

data_ny.groupby(by=['userId','venueId']).size()

然后将userId ,venueId,频次写入csv中

userId = []
venueId = []
count = []
for i in data_gb:
    userId.append(i[0][0])
    venueId.append(i[0][1]) 
data_ub = pd.DataFrame()
data_ub['userId'] = userId
data_ub['venueId'] = venueId
data_ub['count'] = data_gb.size()
data_ub.to_csv('data/foursquare/data_ub.csv',index=None)

 

### 如何使用 Pandas 进行分组统计操作 #### 导入必要的库 为了进行分组统计,首先需要导入 `pandas` 库。 ```python import pandas as pd ``` #### 准备数据 假设有一个 CSV 文件名为 'sales_data.csv',其中包含销售记录的数据框。读取该文件并查看前几行以了解其结构[^1]。 ```python df = pd.read_csv('sales_data.csv') print(df.head()) ``` #### 基本的分组求和操作 可以按照某一列(例如 "Category" 列)对数据进行分组,并计算每组中另一列(如 "SalesAmount")数值之和。 ```python grouped_sum = df.groupby('Category')['SalesAmount'].sum() print(grouped_sum) ``` #### 多种聚合运算 除了简单的求和外,还可以在同一时间应用多个不同的聚合函数到各个小组之上。这里展示了一个例子,在此案例里不仅得到了销售额总和还获取到了均值以及最大最小值等信息[^2]。 ```python aggregated_stats = df.groupby('Category').agg({ 'SalesAmount': ['sum', 'mean', 'min', 'max'], }) print(aggregated_stats) ``` #### 自定义聚合逻辑 当内置的方法无法满足特定需求时,则可以通过传递自定义函数给 `.agg()` 方法来自由组合各种复杂的业务规则来进行更精细的数据处理工作[^4]。 ```python def custom_aggregation(x): return (x.max() - x.min()) / x.mean() custom_result = df.groupby('Region')['Profit'].apply(custom_aggregation) print(custom_result) ``` #### 使用字典或 Series 对象指定分组依据 有时可能希望基于外部条件而非现有字段来创建新的分组标准;这时就可以利用 Python 字典或是 Pandas 的 Series 来作为额外参数传入 `groupby()` 函数之中完成这项任务[^5]。 ```python mapping_dict = {'North America': 'NA', 'Europe': 'EU'} regions_mapped = df['Continent'].map(mapping_dict) continent_grouping = df.groupby(regions_mapped)['Revenue'].sum() print(continent_grouping) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值