首頁  >  文章  >  後端開發  >  Pandas資料篩選的高階技巧及實例應用

Pandas資料篩選的高階技巧及實例應用

PHPz
PHPz原創
2024-01-24 08:28:061047瀏覽

Pandas資料篩選的高階技巧及實例應用

Pandas是一個強大的資料處理和分析工具,它提供了許多靈活的功能和方法,能夠輕鬆地篩選和處理資料。本文將介紹幾種Pandas資料篩選的進階技巧,並透過實際案例提供具體的程式碼範例。

一、基本資料篩選

Pandas提供了多種方法來對資料進行基本的篩選,例如使用布林索引、loc或iloc方法等。以下是一些常見的基本資料篩選案例。

  1. 布林索引篩選

布林索引可以用來根據某個條件篩選資料。例如,我們有一個包含學生資訊的資料框,想篩選出成績大於60分的學生。可以使用以下程式碼實作:

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '成绩': [80, 70, 90, 50]
}

df = pd.DataFrame(data)
df_filtered = df[df['成绩'] > 60]

print(df_filtered)
  1. loc方法篩選

#loc方法可以根據行標籤和列標籤進行資料篩選。例如,我們有一個包含學生資訊的資料框,想篩選出姓名為張三和李四的學生的成績和年齡。可以使用以下程式碼實作:

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '成绩': [80, 70, 90, 50],
    '年龄': [18, 19, 20, 21]
}

df = pd.DataFrame(data)
df_filtered = df.loc[df['姓名'].isin(['张三', '李四']), ['成绩', '年龄']]

print(df_filtered)

二、進階資料篩選

除了基本資料篩選方法外,Pandas還提供了許多進階的資料篩選技巧,如使用query方法、使用索引對象MultiIndex進行多層次篩選等。以下是幾個案例說明。

  1. query方法篩選

query方法可以透過類似SQL的語法來篩選資料。例如,我們有一個包含學生資訊的資料框,想篩選出成績大於60分且年齡在18到20歲之間的學生。可以使用以下程式碼實作:

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '成绩': [80, 70, 90, 50],
    '年龄': [18, 19, 20, 21]
}

df = pd.DataFrame(data)
df_filtered = df.query('成绩 > 60 and 18 <= 年龄 <= 20')

print(df_filtered)
  1. 使用MultiIndex篩選

如果資料框有多層次的索引,可以利用MultiIndex物件進行多層次篩選。例如,我們有一個包含學生資訊的資料框,其中索引包括班級和學號兩層次,想篩選出1班學號為001和002的學生。可以使用以下程式碼實作:

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '成绩': [80, 70, 90, 50],
}

index = pd.MultiIndex.from_tuples([('1班', '001'), ('1班', '002'), ('2班', '001'), ('2班', '002')])
df = pd.DataFrame(data, index=index)
df_filtered = df.loc[('1班', ['001', '002']), :]

print(df_filtered)

三、案例分析

現在我們以一個真實的資料集為例,進一步說明Pandas資料篩選的高階技巧。假設我們有一個汽車銷售資料集,其中包含了車輛品牌、車型、銷售量和銷售等資訊。我們想篩選出銷售量超過1000輛且銷售超過100萬的車型。以下是程式碼範例:

import pandas as pd

data = {
    '品牌': ['宝马', '奥迪', '奔驰', '大众'],
    '型号': ['X3', 'A6', 'E级', '朗逸'],
    '销售量': [1200, 800, 1500, 900],
    '销售额': [1200, 900, 1800, 800]
}

df = pd.DataFrame(data)
df_filtered = df.query('销售量 > 1000 and 销售额 > 1000000')

print(df_filtered)

透過以上程式碼,我們成功篩選出了銷售量超過1000輛且銷售額超過100萬元的車型。

綜上所述,Pandas提供了豐富的資料篩選功能和方法,從基本的布林索引、loc和iloc方法到進階的query方法和MultiIndex篩選,可以滿足不同場景下的資料篩選需求。以上案例展示了一些常見的資料篩選技巧和應用,希望對讀者在實際應用上有所幫助。

以上是Pandas資料篩選的高階技巧及實例應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn