Pandas高級(jí)應(yīng)用:數(shù)據(jù)透視表和字符串操作

24.png

Pandas是Python中用于數(shù)據(jù)處理和分析的強(qiáng)大庫。這篇文章將深入探討Pandas庫的高級(jí)功能:數(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)換、長(zhǎng)度計(jì)算种冬、分割镣丑、替換等。

s = pd.Series(['Pandas', 'Is', 'An', 'Excellent', 'Library'])

print(s.str.lower())  # 轉(zhuǎn)為小寫
print(s.str.len())  # 計(jì)算長(zhǎng)度
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ù)處理和分析工作中起到幫助旱物。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卫袒,隨后出現(xiàn)的幾起案子宵呛,更是在濱河造成了極大的恐慌,老刑警劉巖夕凝,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宝穗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡码秉,警方通過查閱死者的電腦和手機(jī)逮矛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來转砖,“玉大人须鼎,你說我怎么就攤上這事「幔” “怎么了晋控?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)姓赤。 經(jīng)常有香客問我赡译,道長(zhǎng),這世上最難降的妖魔是什么模捂? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任捶朵,我火速辦了婚禮,結(jié)果婚禮上狂男,老公的妹妹穿的比我還像新娘综看。我一直安慰自己,他們只是感情好岖食,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布红碑。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪析珊。 梳的紋絲不亂的頭發(fā)上羡鸥,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音忠寻,去河邊找鬼惧浴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛奕剃,可吹牛的內(nèi)容都是我干的衷旅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼纵朋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼柿顶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起操软,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤嘁锯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后聂薪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體家乘,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年胆建,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烤低。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡笆载,死狀恐怖扑馁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情凉驻,我是刑警寧澤腻要,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站涝登,受9級(jí)特大地震影響雄家,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胀滚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一趟济、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咽笼,春花似錦顷编、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽双肤。三九已至,卻和暖如春钮惠,著一層夾襖步出監(jiān)牢的瞬間茅糜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工素挽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蔑赘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓毁菱,卻偏偏與公主長(zhǎng)得像米死,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贮庞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容