博客 / 詳情

返回

15個基本且常用Pandas代碼片段

Pandas提供了強大的數據操作和分析功能,是數據科學的日常基本工具。在本文中,我們將介紹最常用的15個Pandas代碼片段。這些片段將幫助簡化數據分析任務,從數據集中提取有價值的見解。

1、過濾數據

Pandas提供了多種方法來過濾數據。

 import pandas as pd
 
 # Create a DataFrame
 data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
         'Age': [25, 30, 35, 40]}
 
 df = pd.DataFrame(data)
 
 # Filter rows where Age is greater than 30
 filtered_df = df[df['Age'] > 30]
 print(filtered_df)

2、分組和聚合數據

 # Grouping by a column and calculating the mean
 grouped = df.groupby('Age').mean()
 print(grouped)

3、數據缺失值

 # Check for missing values
 missing_values = df.isnull().sum()
 
 # Fill missing values with a specific value
 df['Age'].fillna(0, inplace=True)

4、將函數應用於列

apply()

函數允許在 DataFrame 的行或列上應用自定義函數,以實現更復雜的數據處理和轉換操作。

 df['Age'] = df['Age'].apply(lambda x: x * 2)

5、連接DataFrames

這裏的連接主要是行的連接,也就是説將兩個相同列結構的DataFrame進行連接

 # Concatenate two DataFrames
 df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
 df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
 
 result = pd.concat([df1, df2], ignore_index=True)
 print(result)

6、合併DataFrames

這裏的合併指的是列的合併,也就是説根據一個或若干個相同的列,進行合併

 # Merge two DataFrames
 left = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
 right = pd.DataFrame({'key': ['B', 'C', 'D'], 'value': [4, 5, 6]})
 
 merged = pd.merge(left, right, on='key', how='inner')
 print(merged)

7、數據透視表

pivot_table

是用於數據透視的重要函數之一。它根據一個或多個列的值對數據進行重新排列和彙總,以便更好地理解數據的結構和關係。

 # Creating a pivot table
 pivot_table = df.pivot_table(index='Name', columns='Age', values='Value')
 print(pivot_table)

8、處理時間/日期類型數據

 # Converting a column to DateTime
 df['Date'] = pd.to_datetime(df['Date'])

9、數據重塑

pandas.melt()

是用於將寬格式(wide format)的數據表格轉換為長格式(long format)。這個函數通常用於數據重塑(data reshaping)操作,以便更容易進行數據分析和可視化。

 pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)

參數説明:

  • frame:要進行重塑操作的數據表格(DataFrame)。
  • id_vars:需要保留的列,它們將成為長格式中的標識變量(identifier variable),不被"融化"。
  • value_vars:需要"融化"的列,它們將被整合成一列,並用新的列名錶示。
  • var_name:用於存儲"融化"後的列名的新列的名稱。
  • value_name:用於存儲"融化"後的值的新列的名稱。
  • col_level:如果輸入數據是多級索引(MultiIndex),則可以指定在哪個級別上應用"融化"操作。

下面是一個示例,演示如何使用

melt()

函數將寬格式數據轉換為長格式,假設有以下的寬格式數據表格

df

    ID  Name  Math  English  History
 0   1   Amy    90       85       88
 1   2   Bob    78       92       76
 2   3  John    88       79       90

我們要將

Math

English

History

列"融化"為一個長格式數據表格,可以這樣做:

 melted_df=pd.melt(df, id_vars=['ID', 'Name'], value_vars=['Math', 'English', 'History'], var_name='Subject', value_name='Score')

轉換後的長格式數據表格

melted_df

如下所示:

    ID  Name  Subject  Score
 0   1   Amy     Math     90
 1   2   Bob     Math     78
 2   3  John     Math     88
 3   1   Amy  English     85
 4   2   Bob  English     92
 5   3  John  English     79
 6   1   Amy  History     88
 7   2   Bob  History     76
 8   3  John  History     90

通過這種方式,你可以將寬格式數據表格中的多列數據整合到一個列中,以更容易進行分析、可視化或其他操作。

melt()

函數在數據清洗和轉換階段非常有用。

melt()

或者可以理解為上面

pivot_table

或者

unstack

的反操作。

10、分類數據

astype('category')

是用於將一列數據類型轉換為分類(Category)類型的方法。將數據列轉換為分類類型有助於節省內存和提高性能,特別是當數據列中包含有限的不同取值時。

 # Encoding categorical variables
 df['Category'] = df['Category'].astype('category')
 df['Category'] = df['Category'].cat.codes

11、數據抽樣

 # Randomly sample rows from a DataFrame
 sampled_df = df.sample(n=2)

12、計算累加和

 # Calculating cumulative sum
 df['Cumulative_Sum'] = df['Values'].cumsum()

13、刪除重複的數據

 # Removing duplicate rows
 df.drop_duplicates(subset=['Column1', 'Column2'], keep='first', inplace=True)

14、創建虛擬變量

pandas.get_dummies()

是 Pandas 中用於執行獨熱編碼(One-Hot Encoding)的函數。

 # Creating dummy variables for categorical data
 dummy_df = pd.get_dummies(df, columns=['Category'])

15、數據導出

有很多個to方法,可以到導出不同的格式

 # Exporting DataFrame to CSV
 df.to_csv('output.csv', index=False)

總結

以上這15個Pandas代碼片段是我們日常最常用的數據操作和分析操作。熟練的掌握它,並將它們合併到工作流程中,可以提高處理和探索數據集的效率和效果。

https://avoid.overfit.cn/post/d5097a67e5c34a0ab42395d8c22091e1

作者:pythonfundamentals

user avatar aloudata 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.