Python中最流行的數據處理庫之一是Pandas。 Pandas的目標是提供一個在Python中操作表格類數據(如電子表格或SQL數據庫表)的高級數據結構和分析工具。 本文將對 Pandas 中最常用的功能和方法進行詳細講解。
一、數據結構
Pandas 庫提供了兩種主要數據結構,Series 和 DataFrame。
1. Series 數據結構
一個 Series 是一維數組對象,可以存儲任何數據類型(整數,字符串,浮點數,Python對象等)。 Series 可以看做是由兩個數組組成,一個用於存儲數據,另一個用於存儲標籤或索引,即 Series 中的 index。
import pandas as pd
data = [1, 2, 3, 4, 5]
s = pd.Series(data)
print(s)
輸出:
0 1
1 2
2 3
3 4
4 5
dtype: int64
2. DataFrame 數據結構
一個 DataFrame 可以看做是在一個或多個軸(行和列)上具有標籤索引(類似於一個 Excel 表格或 SQL 中的表)。 Pandas DataFrame 可以存儲多種類型的數據,並將其視為二維表。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
print(df)
輸出:
name age gender
0 Alice 25 F
1 Bob 32 M
2 Charlie 18 M
3 David 47 M
二、文件讀取和寫入
Pandas 支持各種文件格式的讀取和寫入,包括 CSV、Excel、SQL、JSON、HTML 和 HDF5 等。Pandas 提供了許多文件讀取和寫入函數,其中最常用的是 read_csv() 和 to_csv() 函數。
1. 讀取 CSV 文件
import pandas as pd
df = pd.read_csv('file.csv')
print(df)
2. 寫入 CSV 文件
import pandas as pd
df = pd.read_csv('file.csv')
df.to_csv('new_file.csv', index=False)
三、數據查詢和過濾
Pandas 為數據查詢和過濾提供了多種功能,如篩選行、選擇列、分組、排序和合併等。
1. 篩選行
使用 loc 和 iloc 兩個函數篩選行。其中loc可以使用標籤進行篩選,iloc可以使用索引進行篩選。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
df = df.loc[df['age'] > 30]
print(df)
2. 選擇列
使用 df.列名 或 df[列名] 進行列的選擇。df.列名 只允許選擇一個列,而df[列名] 可以同時選擇多個列。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
print(df['name'])
print(df[['name', 'age']])
3. 分組聚合
使用 groupby 函數將數據按照某個字段(列)進行分組,然後對每組數據進行聚合操作,如求平均值、求和、計數等。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
grouped = df.groupby(by='gender')
print(grouped['age'].mean())
4. 排序
使用 sort_values 函數對數據進行排序,默認為升序排序。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
df.sort_values(by='age', inplace=True)
print(df)
四、數據可視化
Pandas 可以使用多種圖表庫(如 Matplotlib 和 Seaborn 等)進行數據可視化操作,用於幫助我們更好地理解和分析數據。
1. 折線圖
使用 plot 函數進行折線圖的繪製。
import pandas as pd
import matplotlib.pyplot as plt
data = {'year': [2010, 2011, 2012, 2013, 2014, 2015, 2016],
'sales': [100, 200, 300, 400, 500, 600, 700]}
df = pd.DataFrame(data)
df.plot(x='year', y='sales', kind='line')
plt.show()
2. 柱狀圖
使用 plot 函數進行柱狀圖的繪製。
import pandas as pd
import matplotlib.pyplot as plt
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47]}
df = pd.DataFrame(data)
df.plot(x='name', y='age', kind='bar', color='purple')
plt.show()
3. 散點圖
使用 plot 函數進行散點圖的繪製。
import pandas as pd
import matplotlib.pyplot as plt
data = {'x': [1, 2, 3, 4, 5],
'y': [2, 4, 1, 3, 5]}
df = pd.DataFrame(data)
df.plot(x='x', y='y', kind='scatter', color='red')
plt.show()
原創文章,作者:ZVSD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136661.html