如何使用Seaborn過濾和選擇資料中的特定行或列?


Seaborn主要是一個數據視覺化庫,它不提供直接過濾或選擇資料中特定行或列的方法。但是,Seaborn可以與pandas庫無縫協作,pandas是Python中一個強大的資料處理庫。我們可以使用pandas過濾和選擇資料中特定行或列,然後使用Seaborn視覺化過濾後的資料。

透過結合pandas的資料處理能力(用於過濾和選擇特定行或列)和Seaborn的視覺化能力,我們可以從資料中獲得見解,並透過視覺化有效地傳達我們的發現。

以下是關於如何結合使用Seaborn和pandas來過濾和選擇資料中特定行或列的詳細說明。

匯入必要的庫

首先,我們必須在Python環境中匯入所有必需的庫,例如seaborn和pandas。

import seaborn as sns
import pandas as pd

將資料載入到pandas DataFrame中

匯入所需的庫後,我們必須使用pandas庫的DataFrame()函式建立資料,或者可以使用pandas庫的read_csv()函式載入資料。使用以下程式碼,我們可以將資料載入到Python工作環境中。

示例

import seaborn as sns
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')
df.head()

輸出

   PassengerId  Survived  Pclass  ...     Fare Cabin  Embarked
0            1         0       3  ...   7.2500   NaN         S
1            2         1       1  ...  71.2833   C85         C
2            3         1       3  ...   7.9250   NaN         S
3            4         1       1  ...  53.1000  C123         S
4            5         0       3  ...   8.0500   NaN         S

[5 rows x 12 columns]

基於條件過濾行

Pandas提供各種方法來根據特定條件過濾行。例如,我們可以使用'loc'或'iloc'訪問器根據布林條件過濾行。

示例

在這個例子中,我們使用'loc'訪問器選擇'Age'列的值大於10的行。這將建立一個名為'filtered_df'的新DataFrame,其中包含過濾後的行。

import seaborn as sns
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')
# Filter rows where a column meets a specific condition
filtered_df = df.loc[df['Age'] > 10]
res = filtered_df.head()
print(res)

輸出

   PassengerId  Survived  Pclass  ...     Fare Cabin  Embarked
0            1         0       3  ...   7.2500   NaN         S
1            2         1       1  ...  71.2833   C85         C
2            3         1       3  ...   7.9250   NaN         S
3            4         1       1  ...  53.1000  C123         S
4            5         0       3  ...   8.0500   NaN         S

[5 rows x 12 columns]

選擇特定列

我們可以使用pandas從DataFrame中選擇特定列。有多種方法可以做到這一點,例如使用列名索引或使用'loc'或'iloc'訪問器。

示例

在這個例子中,我們建立了一個名為'selected_columns'的新DataFrame,它只包含原始DataFrame中的指定列('Age'和'Fare')。

import seaborn as sns
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')
# Filter rows where a column meets a specific condition
filtered_df = df.loc[df['Age'] > 10]
# Select specific columns by name
selected_columns = df[['Age', 'Fare']]
# Select specific columns using loc or iloc
selected_columns = df.loc[:,['Age', 'Fare']]
print(selected_columns.head())

輸出

    Age     Fare
0  22.0   7.2500
1  38.0  71.2833
2  26.0   7.9250
3  35.0  53.1000
4  35.0   8.0500

使用Seaborn視覺化過濾或選擇後的資料

一旦我們使用pandas過濾或選擇所需的行或列,我們就可以使用Seaborn來視覺化過濾後的資料。Seaborn提供了廣泛的繪圖函式,這些函式接受pandas DataFrame作為輸入。

我們可以使用其他各種Seaborn繪圖函式來視覺化過濾或選擇後的資料,例如折線圖、條形圖、箱線圖等等。Seaborn提供了許多自定義選項來增強資料的視覺表示。

示例

在上面的例子中,我們使用Seaborn的'scatterplot()'函式來建立'filtered_df' DataFrame中兩列('Age'和'Fare')的散點圖。

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')
# Filter rows where a column meets a specific condition
filtered_df = df.loc[df['Age'] > 10]
# Create a scatter plot of two columns from the filtered DataFrame
sns.scatterplot(x='Age', y='Fare', data=filtered_df)
plt.show()

輸出

注意

需要注意的是,Seaborn主要關注資料視覺化,對於更復雜的資料處理任務,我們可能需要依賴pandas或Python中其他資料處理庫提供的功能。

更新於:2023年8月2日

1K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.