python Pandas高級功能之?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在高級數(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. 對Series應(yīng)用函數(shù)
s = pd.Series([20, 21, 12], index=['London', 'New York', 'Helsinki']) # 使用apply()函數(shù) print(s.apply(lambda x: x**2)) # 對Series的每個(gè)元素求平方
2. 對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)) # 對DataFrame的每個(gè)元素求平方
通過上述內(nèi)容,我們對Pandas庫中的字符串操作和數(shù)據(jù)透視表有了更深入的了解,希望這能在你的數(shù)據(jù)處理和分析工作中起到幫助。
到此這篇關(guān)于python Pandas高級功能之?dāng)?shù)據(jù)透視表和字符串操作的文章就介紹到這了,更多相關(guān)python Pandas高級功能內(nèi)容請搜索腳本之家以前的文章或繼續(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)銀聯(lián)支付和支付寶支付接入
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)銀聯(lián)支付和支付寶支付的接入,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05Python基礎(chǔ)Lists和tuple實(shí)例詳解
這篇文章主要為大家介紹了Python基礎(chǔ)Lists和tuple實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Python 詳解通過Scrapy框架實(shí)現(xiàn)爬取CSDN全站熱榜標(biāo)題熱詞流程
Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛,框架的力量,用戶只需要定制開發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲,用來抓取網(wǎng)頁內(nèi)容以及各種圖片,非常之方便2021-11-11Python實(shí)現(xiàn)向好友發(fā)送微信消息
利用python可以實(shí)現(xiàn)微信消息發(fā)送功能,怎么實(shí)現(xiàn)呢?你肯定會想著很復(fù)雜,但是python的好處就是很多人已經(jīng)把接口打包做好了,只需要調(diào)用即可,今天通過本文給大家分享使用?Python?實(shí)現(xiàn)微信消息發(fā)送的思路代碼,一起看看吧2022-06-06mac下給python3安裝requests庫和scrapy庫的實(shí)例
今天小編就為大家分享一篇mac下給python3安裝requests庫和scrapy庫的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06