python Pandas高級(jí)功能之?dāng)?shù)據(jù)透視表和字符串操作
一、數(shù)據(jù)透視表
數(shù)據(jù)透視表是一種常見的數(shù)據(jù)匯總工具,常用于電子表格程序和某些數(shù)據(jù)庫。Pandas提供了創(chuàng)建數(shù)據(jù)透視表的功能,這使得數(shù)據(jù)分析更加靈活和直觀。
1. 創(chuàng)建數(shù)據(jù)透視表
Pandas的pivot_table()函數(shù)可以輕松地創(chuàng)建數(shù)據(jù)透視表。我們需要指定以下參數(shù):values(要聚合的列名),index(在透視表的行中要分組的列名),columns(在透視表的列中要分組的列名),aggfunc(用于聚合的函數(shù))。
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)
})
# 創(chuàng)建數(shù)據(jù)透視表
pivot_table = df.pivot_table(values='D', index=['A', 'B'], columns=['C'], aggfunc=np.sum)
print(pivot_table)2. 查詢數(shù)據(jù)透視表
你可以像查詢普通的DataFrame那樣查詢數(shù)據(jù)透視表。
# 查詢數(shù)據(jù)透視表 print(pivot_table.loc['one']) # 查詢行索引為'one'的數(shù)據(jù) print(pivot_table['foo']) # 查詢列索引為'foo'的數(shù)據(jù)
二、字符串操作
Pandas提供了一系列的字符串處理方法,在str屬性中集成了這些方法,這使得在DataFrame和Series中的字符串操作更加方便。
1. 字符串基本操作
Pandas支持大部分Python內(nèi)置的字符串方法。
s = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', np.nan, 'CABA', 'dog', 'cat']) print(s.str.lower()) # 將字符串轉(zhuǎn)化為小寫
2. 使用正則表達(dá)式
Pandas的字符串方法能夠接受正則表達(dá)式,這使得字符串操作更加強(qiáng)大。例如,我們可以使用正則表達(dá)式,配合replace()函數(shù)替換字符串中的字符。
s = pd.Series(['a', 'a|b', np.nan, 'a|c'])
print(s.str.replace('a|b', 'new', regex=True)) # 使用正則表達(dá)式替換字符串通過以上這兩個(gè)方面的深入探討,我們可以看到Pandas在高級(jí)數(shù)據(jù)處理方面的強(qiáng)大能力。使用數(shù)據(jù)透視表和字符串操作,可以讓我們更有效地進(jìn)行數(shù)據(jù)處理。
三、向量化字符串操作
Pandas庫在str屬性下提供了一系列字符串處理方法,這些方法可以更方便地進(jìn)行向量化字符串操作,實(shí)現(xiàn)在整個(gè)Series或DataFrame中的字符串處理。
1. 向量化操作的基本方法
向量化操作的基本方法主要包括:大小寫轉(zhuǎn)換、長度計(jì)算、分割、替換等。
s = pd.Series(['Pandas', 'Is', 'An', 'Excellent', 'Library'])
print(s.str.lower()) # 轉(zhuǎn)為小寫
print(s.str.len()) # 計(jì)算長度
print(s.str.split()) # 分割字符串
print(s.str.replace('A', 'a')) # 替換字符2. 使用正則表達(dá)式的向量化操作
Pandas的字符串方法支持正則表達(dá)式,能實(shí)現(xiàn)更復(fù)雜的字符串操作。
s = pd.Series(['Pandas', 'Is', 'Not only', 'An', 'Excellent', 'Library'])
print(s.str.contains('An')) # 檢查字符串是否包含"An"
print(s.str.extract('([A-Za-z]+)')) # 提取匹配正則表達(dá)式的部分四、應(yīng)用函數(shù)
Pandas也支持應(yīng)用自定義函數(shù)或者lambda函數(shù)到Series或DataFrame的元素。
1. 對(duì)Series應(yīng)用函數(shù)
s = pd.Series([20, 21, 12], index=['London', 'New York', 'Helsinki']) # 使用apply()函數(shù) print(s.apply(lambda x: x**2)) # 對(duì)Series的每個(gè)元素求平方
2. 對(duì)DataFrame應(yīng)用函數(shù)
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [10, 20, 30],
'C': [7, 8, 9]
})
# 使用applymap()函數(shù)
print(df.applymap(lambda x: x**2)) # 對(duì)DataFrame的每個(gè)元素求平方通過上述內(nèi)容,我們對(duì)Pandas庫中的字符串操作和數(shù)據(jù)透視表有了更深入的了解,希望這能在你的數(shù)據(jù)處理和分析工作中起到幫助。
到此這篇關(guān)于python Pandas高級(jí)功能之?dāng)?shù)據(jù)透視表和字符串操作的文章就介紹到這了,更多相關(guān)python Pandas高級(jí)功能內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- pandas中使用數(shù)據(jù)透視表的示例代碼
- Pandas實(shí)現(xiàn)(pivot_table函數(shù))數(shù)據(jù)透視表方式
- Pandas數(shù)據(jù)分析之pandas數(shù)據(jù)透視表和交叉表
- Python+Pandas實(shí)現(xiàn)數(shù)據(jù)透視表
- python 用pandas實(shí)現(xiàn)數(shù)據(jù)透視表功能
- pandas實(shí)現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼
- 使用Pandas實(shí)現(xiàn)Excel中的數(shù)據(jù)透視表的項(xiàng)目實(shí)踐
相關(guān)文章
Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的的棧隊(duì)列
這篇文章主要介紹了Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的的棧,隊(duì)列,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
python矩陣運(yùn)算,轉(zhuǎn)置,逆運(yùn)算,共軛矩陣實(shí)例
這篇文章主要介紹了python矩陣運(yùn)算,轉(zhuǎn)置,逆運(yùn)算,共軛矩陣實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python 實(shí)現(xiàn)某個(gè)功能每隔一段時(shí)間被執(zhí)行一次的功能方法
今天小編就為大家分享一篇Python 實(shí)現(xiàn)某個(gè)功能每隔一段時(shí)間被執(zhí)行一次的功能方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Django 實(shí)現(xiàn)Admin自動(dòng)填充當(dāng)前用戶的示例代碼
今天小編就為大家分享一篇Django 實(shí)現(xiàn)Admin自動(dòng)填充當(dāng)前用戶的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python?time模塊時(shí)間獲取和轉(zhuǎn)換方法
這篇文章主要介紹了Python?time模塊時(shí)間獲取和轉(zhuǎn)換,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
OpenCV圖像形態(tài)學(xué)的實(shí)現(xiàn)
本文主要介紹了OpenCV圖像形態(tài)學(xué)的實(shí)現(xiàn),包括腐蝕、膨脹、開運(yùn)算、閉運(yùn)算、梯度運(yùn)算、頂帽運(yùn)算和黑帽運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
python實(shí)現(xiàn)控制電腦鼠標(biāo)和鍵盤,登錄QQ的方法示例
這篇文章主要介紹了python實(shí)現(xiàn)控制電腦鼠標(biāo)和鍵盤,登錄QQ的方法,涉及Python基于Button,Controller,Key模塊針對(duì)鍵盤、鼠標(biāo)的控制相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
Django在urls.py利用函數(shù)path()配置路由時(shí)傳遞參數(shù)給調(diào)用的視圖函數(shù)的方法(推薦)
這篇文章主要介紹了Django在urls.py利用函數(shù)path()配置路由時(shí)傳遞參數(shù)給調(diào)用的視圖函數(shù)的方法(推薦),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01
Python實(shí)現(xiàn)批量修改指定目錄下圖片的大小
批量修改指定目錄下圖片大小通常是在需要對(duì)大量圖片進(jìn)行統(tǒng)一處理的情況下使用的,本文主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)批量修改圖片大小,需要的可以參考下2023-10-10
Python生成可執(zhí)行文件之PyInstaller庫的使用方式
PyInstaller是一個(gè)十分有用的第三方庫,通過對(duì)源文件打包,Python程序可以在沒有安裝Python的環(huán)境中運(yùn)行,也可以作為一個(gè)獨(dú)立文件方便傳遞和管理,下面這篇文章主要給大家介紹了關(guān)于Python生成可執(zhí)行文件之PyInstaller庫的使用方式,需要的朋友可以參考下2022-04-04

