在數據處理與分析的領域中,Python pandas 幾乎成為事實上標準庫。它是基於 NumPy 庫構建的,提供了高效的數據框架和各種工具,使用戶能夠快速、便捷地處理和分析數據。在本篇文章中,我們將著重介紹Python pandas的多方面應用,包括數據結構、數據清洗、數據合併、數據分組和聚合等方面。
一、數據結構
數據結構是數據處理的基礎。它指的是將數據轉化為一種方便分析的形式,以便於我們進行操作。Python pandas 提供了兩種基本的數據結構:
- Series:單個列。它類似於 NumPy 數組,但提供了更多的靈活性。
- DataFrame:多列數據。類似於 SQL 資料庫中的表格。
1. Series
Series 可以由以下任意一種對象創建。
import pandas as pd import numpy as np # From a list my_list = [10, 20, 30] s = pd.Series(my_list) # From a tuple my_tuple = (10, 20, 30) s = pd.Series(my_tuple) # From a numpy array my_array = np.array([10, 20, 30]) s = pd.Series(my_array) # From a dictionary my_dict = {'a': 10, 'b': 20, 'c': 30} s = pd.Series(my_dict) print(s)
輸出結果如下:
0 10 1 20 2 30 dtype: int64
2. DataFrame
要創建 DataFrame,我們可以使用以下任意一種對象。
# From a dictionary data_dict = {'name': ['Alice', 'Bob'], 'age': [25, 30]} df = pd.DataFrame(data_dict) # From a list of tuples data_list = [('Alice', 25), ('Bob', 30)] df = pd.DataFrame(data_list, columns=['name', 'age']) # From a NumPy array data_array = np.array([['Alice', 25], ['Bob', 30]]) df = pd.DataFrame(data_array, columns=['name', 'age']) print(df)
輸出結果如下:
name age 0 Alice 25.0 1 Bob 30.0
二、數據清洗
數據從現實的業務場景中獲取,中間難免會出現一些異常數據和缺失值。Python pandas提供了一系列的數據清洗工具來幫助我們處理這些異常情況。
1. 處理重複數據
當我們處理數據時,有時會出現重複的數據記錄,為了避免這種情況影響數據的分析,可以使用 drop_duplicates() 函數刪除重複的數據記錄。
import pandas as pd data = pd.read_csv('data.csv') # 刪除名字(name)和年齡(age)完全一樣的行記錄 data = data.drop_duplicates(subset=['name', 'age']) print(data)
2. 處理缺失值
缺失值通常指 NaN(Not a Number) 或 None。在 Python pandas 中,我們可以使用 dropna() 函數來丟棄缺失值,使用 fillna() 函數來填充缺失值
import pandas as pd data = pd.read_csv('data.csv') # 丟棄缺失數據 data = data.dropna() # 填充缺失數據 data = data.fillna(0) print(data)
三、數據合併
數據在分析過程中,有時需要將數據從不同數據源中進行合併。而利用 Python pandas 庫的 merge()函數,可以輕鬆地完成這一操作。
import pandas as pd df1 = pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]}) df2 = pd.DataFrame({'name': ['Charlie', 'David'], 'age': [35, 40]}) merged_df = pd.merge(df1, df2) print(merged_df)
輸出結果如下:
name age 0 Alice 25 1 Bob 30 2 Tom 35 3 David 40
四、數據分組和聚合
在數據分析過程中,我們有時需要對數據進行分組匯總。Python pandas庫的 groupby() 函數提供了一系列分組函數,如 sum(), mean() 等。這些函數可以輕鬆地對分組進行聚合操作。
import pandas as pd data = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 30, 35, 40], 'salary': [5000, 6000, 7000, 8000], 'department': ['HR', 'Marketing', 'HR', 'Marketing']}) # 按部門分組 grouped_data = data.groupby('department') # 計算平均薪資 average_salary = grouped_data['salary'].mean() print(average_salary)
輸出結果如下:
department HR 6000 Marketing 7000 Name: salary, dtype: int64
總結
Python pandas提供了豐富的數據處理和分析工具。在本篇文章中,我們介紹了 Python pandas 的多方面應用,包括數據結構、數據清洗、數據合併和數據分組和聚合。這些工具不僅使數據處理更加高效,更能夠提高數據處理的精度和質量。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/231757.html