如何在Pandas DataFrame中获取列值并将分类统计值存入变量
在Pandas DataFrame中获取列值及存储分类统计值
示例DataFrame
先基于你提供的表格创建对应DataFrame:
| Location | Category | Count |
|---|---|---|
| Duliajan Area | PD | 1 |
| Duliajan Area | SE | 3 |
| HAPJAN | COL | 1 |
| HAPJAN | OTH | 1 |
| KATHALGURI | COL | 1 |
| KATHALGURI | DP-PD | 1 |
创建代码:
import pandas as pd data = { 'Location': ['Duliajan Area', 'Duliajan Area', 'HAPJAN', 'HAPJAN', 'KATHALGURI', 'KATHALGURI'], 'Category': ['PD', 'SE', 'COL', 'OTH', 'COL', 'DP-PD'], 'Count': [1, 3, 1, 1, 1, 1] } df = pd.DataFrame(data)
一、获取DataFrame的列值
常用方法如下:
- 方括号索引:支持所有列名,可单列/多列获取
# 获取单列所有值 location_col = df['Location'] # 获取多列 loc_count_cols = df[['Location', 'Count']] - 点号访问:仅适用于列名无空格、特殊字符的情况
count_col = df.Count - iloc按位置索引:通过列的序号获取(从0开始计数)
# 获取第2列(Category)的所有值 category_col = df.iloc[:, 1] - loc按标签筛选:可结合条件提取指定行的列值
# 获取Duliajan Area对应的Count值 duliajan_counts = df.loc[df['Location'] == 'Duliajan Area', 'Count']
二、将分类统计值存入变量
根据需求分场景处理:
1. 全局分类汇总存储
先按Category分组统计Count总和,再提取目标值存入变量:
# 把分类统计结果转成字典 category_total = df.groupby('Category')['Count'].sum().to_dict() # 直接生成指定格式的变量 pd_stat = f"(PD - {category_total['PD']})" se_stat = f"(SE - {category_total['SE']})"
2. 按Location分组的分类存储
如果需要针对特定区域的分类统计:
# 筛选Duliajan Area的数据并转成字典 duliajan_stats = df[df['Location'] == 'Duliajan Area'].set_index('Category')['Count'].to_dict() # 生成对应变量 duliajan_pd = f"(PD - {duliajan_stats['PD']})" duliajan_se = f"(SE - {duliajan_stats['SE']})"
3. 批量存储所有分类统计
如果要把所有分类的统计值都存入变量,推荐用字典统一管理(避免动态变量命名混乱):
category_total = df.groupby('Category')['Count'].sum() stat_dict = {cat: f"({cat} - {cnt})" for cat, cnt in category_total.items()} # 调用示例 print(stat_dict['PD']) # 输出:(PD - 1) print(stat_dict['SE']) # 输出:(SE - 3)
内容的提问来源于stack exchange,提问作者venkateswaran
相关产品推荐
相关产品推荐

