python Pandas高级功能之数据透视表和字符串操作
作者:小小张说故事
一、数据透视表
数据透视表是一种常见的数据汇总工具,常用于电子表格程序和某些数据库。Pandas提供了创建数据透视表的功能,这使得数据分析更加灵活和直观。
1. 创建数据透视表
Pandas的pivot_table()
函数可以轻松地创建数据透视表。我们需要指定以下参数:values
(要聚合的列名),index
(在透视表的行中要分组的列名),columns
(在透视表的列中要分组的列名),aggfunc
(用于聚合的函数)。
import pandas as pd import numpy as np df = pd.DataFrame({ 'A': ['one', 'one', 'two', 'three'] * 3, 'B': ['A', 'B', 'C'] * 4, 'C': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 2, 'D': np.random.randn(12), 'E': np.random.randn(12) }) # 创建数据透视表 pivot_table = df.pivot_table(values='D', index=['A', 'B'], columns=['C'], aggfunc=np.sum) print(pivot_table)
2. 查询数据透视表
你可以像查询普通的DataFrame那样查询数据透视表。
# 查询数据透视表 print(pivot_table.loc['one']) # 查询行索引为'one'的数据 print(pivot_table['foo']) # 查询列索引为'foo'的数据
二、字符串操作
Pandas提供了一系列的字符串处理方法,在str
属性中集成了这些方法,这使得在DataFrame和Series中的字符串操作更加方便。
1. 字符串基本操作
Pandas支持大部分Python内置的字符串方法。
s = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', np.nan, 'CABA', 'dog', 'cat']) print(s.str.lower()) # 将字符串转化为小写
2. 使用正则表达式
Pandas的字符串方法能够接受正则表达式,这使得字符串操作更加强大。例如,我们可以使用正则表达式,配合replace()
函数替换字符串中的字符。
s = pd.Series(['a', 'a|b', np.nan, 'a|c']) print(s.str.replace('a|b', 'new', regex=True)) # 使用正则表达式替换字符串
通过以上这两个方面的深入探讨,我们可以看到Pandas在高级数据处理方面的强大能力。使用数据透视表和字符串操作,可以让我们更有效地进行数据处理。
三、向量化字符串操作
Pandas库在str
属性下提供了一系列字符串处理方法,这些方法可以更方便地进行向量化字符串操作,实现在整个Series或DataFrame中的字符串处理。
1. 向量化操作的基本方法
向量化操作的基本方法主要包括:大小写转换、长度计算、分割、替换等。
s = pd.Series(['Pandas', 'Is', 'An', 'Excellent', 'Library']) print(s.str.lower()) # 转为小写 print(s.str.len()) # 计算长度 print(s.str.split()) # 分割字符串 print(s.str.replace('A', 'a')) # 替换字符
2. 使用正则表达式的向量化操作
Pandas的字符串方法支持正则表达式,能实现更复杂的字符串操作。
s = pd.Series(['Pandas', 'Is', 'Not only', 'An', 'Excellent', 'Library']) print(s.str.contains('An')) # 检查字符串是否包含"An" print(s.str.extract('([A-Za-z]+)')) # 提取匹配正则表达式的部分
四、应用函数
Pandas也支持应用自定义函数或者lambda函数到Series或DataFrame的元素。
1. 对Series应用函数
s = pd.Series([20, 21, 12], index=['London', 'New York', 'Helsinki']) # 使用apply()函数 print(s.apply(lambda x: x**2)) # 对Series的每个元素求平方
2. 对DataFrame应用函数
df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [10, 20, 30], 'C': [7, 8, 9] }) # 使用applymap()函数 print(df.applymap(lambda x: x**2)) # 对DataFrame的每个元素求平方
通过上述内容,我们对Pandas库中的字符串操作和数据透视表有了更深入的了解,希望这能在你的数据处理和分析工作中起到帮助。
到此这篇关于python Pandas高级功能之数据透视表和字符串操作的文章就介绍到这了,更多相关python Pandas高级功能内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!