---------------pandas数据分析集合---------------
Python教程71:学习Pandas中一维数组Series
Python教程74:Pandas中DataFrame数据创建方法及缺失值与重复值处理
Pandas数据化分析,DataFrame行列索引数据的选取,增加,修改和删除操作
Pandas教程05:DataFrame数据常用属性和方法汇总
Pandas教程06:DataFrame.merge数据的合并处理
Pandas教程07:DataFrame数据的算术运算+逻辑运算+describe()方法+统计函数+自定义函数运算
Pandas教程08:教你DataFrame数据的条件筛选——精选篇
Pandas教程09:使用date_range函数,创建时间序列数据
Pandas教程10:DataFrame数据可视化绘制折线图、柱状图、散点图、饼形图
Pandas教程11:关于pd.DataFrame.shift(1)数据下移的示例用法
Tkinter教程22:DataFrame数据加入到treeview树视图(含横纵滚动条+正反向排序)
Pandas教程12:常用的pd.set_option方法,显示所有行和列+不换行显示等等…
Pandas教程13:groupby函数的分组、聚合、转换和过滤操作
Pandas教程14:DataFrame数据合并(concat+merge+_append+join)的4种方法
Pandas教程15:多个DataFrame数据(保存+追加)为Excel表格数据
Pandas教程16:DataFrame列标题批量重命名+空df数据判断+列名顺序重排
Pandas教程17:关于json数据转化成DataFrame数据,消除警告提示的方法。
Pandas教程18:df数据中含有的关键字批量replace替换+删除行或列
Pandas教程19:groupby分组后,对列中指定关键字的组,进行求和运算。
假设你有这样的需求,某个df数据,朝代列中数据含有唐宋元明清,但是你只想对唐宋进行分组后的聚合运算。那么我们定义了一个包含关键字’唐’和’宋’的列表keywords。然后,我们使用isin方法来筛选出,'朝代列’中包含这些关键字的行。接下来,我们对筛选后的DataFrame按’朝代列’进行分组,并对每个组的’评分列’或’年龄列’进行求和。最后,我们使用reset_index方法将’朝代列’转换为普通列,以便得到一个包含聚合结果的DataFrame。
# @Author : 小红牛
# 微信公众号:WdPython
import pandas as pd
data = {'诗人': ['李白', '元好问', '李清照', '苏轼', '杜甫', '纳兰性德'],
'朝代': ['唐', '元', '宋', '宋', '唐', '清'],
'评分': [9.88, 7.65, 9.37, 9.5, 9.72, 8.16],
'芳龄': [18, 26, 13, 26, 15, 28]}
# 1.创建一个示例DataFrame
df = pd.DataFrame(data)
print('1.原始DataFrame数据:'.center(30, '-'))
print(df)
# 定义包含多个关键字的列表
keywords = ['唐', '宋']
# 2.使用isin方法筛选出包含关键字的组
filtered_df = df[df['朝代'].isin(keywords)]
print('2.isin方法筛选的数据:'.center(30, '-'))
print(filtered_df)
# 3.对某一列进行求和操作
sum_result = filtered_df.groupby('朝代')['评分'].sum()
# 对聚合结果进行四舍五入,保留两位小数,单位为万
rounded_sums = sum_result.round(1).reset_index()
print('3.对筛选后的某一列,进行聚合操作'.center(30, '-'))
print(rounded_sums)
# 4.使用isin方法筛选出包含关键字的组,并对多列进行求和
columns_to_sum = ['评分', '芳龄']
sum_result2 = df[df['朝代'].isin(keywords)].groupby('朝代')[columns_to_sum].sum().reset_index()
print('4.对筛选后的多列,进行聚合操作'.center(30, '-'))
print(sum_result2)
输出内容:
-------1.原始DataFrame数据:-------
诗人 朝代 评分 芳龄
0 李白 唐 9.88 18
1 元好问 元 7.65 26
2 李清照 宋 9.37 13
3 苏轼 宋 9.50 26
4 杜甫 唐 9.72 15
5 纳兰性德 清 8.16 28
--------2.isin方法筛选的数据:--------
诗人 朝代 评分 芳龄
0 李白 唐 9.88 18
2 李清照 宋 9.37 13
3 苏轼 宋 9.50 26
4 杜甫 唐 9.72 15
------3.对筛选后的某一列,进行聚合操作-------
朝代 评分
0 唐 19.6
1 宋 18.9
-------4.对筛选后的多列,进行聚合操作-------
朝代 评分 芳龄
0 唐 19.60 33
1 宋 18.87 39
完毕!!感谢您的收看
----------★★历史博文集合★★----------