Pandas如何将多类统计计数结果存入单个dataframe?
多维度统计合并为单个DataFrame的实现方法
汽车数据全局统计场景
针对原始汽车数据,无需拆分生成两个独立统计表,可直接一次性构建包含两类计数的新表:
- 对0/1标记列直接求和即可得到对应类别的总样本量
- 将两个统计结果组装为同一字典结构,直接转换为单个DataFrame即可
示例代码:
import pandas as pd # 导入/构造原始汽车DataFrame car_df = pd.DataFrame({ "Model": ["BenzC", "BensGla", "HondaAccord", "HondaOdyssey", "ToyotaCamry"], "IsJapanese": [0, 0, 1, 1, 1], "IsGerman": [1, 1, 0, 0, 0] }) # 一次性构建含两类统计值的新DataFrame total_car_stats = pd.DataFrame({ "TotalJapanese": [car_df["IsJapanese"].sum()], "TotalGerman": [car_df["IsGerman"].sum()] })
输出结果结构:
| TotalJapanese | TotalGerman |
|---|---|
| 3 | 2 |
门店分组多维度统计场景
针对门店数据的分组统计需求,使用groupby的多列聚合能力即可一次性生成所有统计维度,无需拆分多次计算:
TotalStores对应分组内的记录总条数,用size方法计算TotalLA、TotalGA为分组内对应0/1标记列的求和结果
示例代码:
# 导入/构造原始门店DataFrame store_df = pd.DataFrame({ "Store": ["Albertsons", "Safeway", "Albertsons", "RiteAid"], "Address": ["Cross St", "LeoSt", "Main St", "Culver St"], "IsLA": [1, 0, 0, 1], "IsGA": [0, 1, 1, 0] }) # 按Store分组,一次性聚合所有需要的统计列 store_stats = store_df.groupby("Store").agg( TotalStores=("Store", "size"), TotalLA=("IsLA", "sum"), TotalGA=("IsGA", "sum") ).reset_index()
输出结果结构:
| Store | TotalStores | TotalLA | TotalGA |
|---|---|---|---|
| Albertsons | 2 | 1 | 1 |
| Safeway | 1 | 0 | 1 |
| RiteAid | 1 | 1 | 0 |
内容的提问来源于stack exchange,提问作者Mmenon
相关产品推荐
相关产品推荐

