在數據處理與分析的領域中,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-hk/n/231757.html
微信掃一掃
支付寶掃一掃