CONTENT
- 基本數據結構
- Series
- DataFrame
- 數據讀取與寫入
- 讀取 CSV 文件
- 寫入 CSV 文件
- 數據清洗
- 處理缺失值
- 數據類型轉換
- 數據操作
- 索引與切片
- 數據合并
- 數據分組與聚合
- 數據可視化
基本數據結構
Series
Series 屬于一維標記數組,由一組數據和對應的索引構成。
import pandas as pd
# 創建 Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)
DataFrame
DataFrame 是二維表格型數據結構,每列可以是不同的數據類型。
import pandas as pd# 創建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)
該代碼借助字典創建了一個簡單的 DataFrame。
數據讀取與寫入
讀取 CSV 文件
import pandas as pd# 讀取 CSV 文件
df = pd.read_csv('data.csv')
df.head()
寫入 CSV 文件
import pandas as pd# 創建示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35]
}
df = pd.DataFrame(data)# 寫入 CSV 文件
df.to_csv('output.csv', index=False)
數據清洗
處理缺失值
import pandas as pd
import numpy as np# 創建包含缺失值的 DataFrame
data = {'A': [1, np.nan, 3],'B': [4, 5, np.nan]
}
df = pd.DataFrame(data)# 刪除包含缺失值的行
df_dropna = df.dropna()# 用 0 填充缺失值
df_fillna = df.fillna(0)print("刪除缺失值后的 DataFrame:")
print(df_dropna)
print("填充缺失值后的 DataFrame:")
print(df_fillna)
數據類型轉換
import pandas as pd# 創建 DataFrame
data = {'A': ['1', '2', '3']
}
df = pd.DataFrame(data)# 將列 A 轉換為整數類型
df['A'] = df['A'].astype(int)
print(df.dtypes)
數據操作
索引與切片
import pandas as pd# 創建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35]
}
df = pd.DataFrame(data)# 按標簽索引選取數據
print(df.loc[0, 'Name'])# 按位置索引選取數據
print(df.iloc[0, 1])
數據合并
import pandas as pd# 創建兩個 DataFrame
df1 = pd.DataFrame({'ID': [1, 2, 3],'Name': ['Alice', 'Bob', 'Charlie']
})
df2 = pd.DataFrame({'ID': [2, 3, 4],'Age': [25, 30, 35]
})# 按 ID 列合并兩個 DataFrame
merged_df = pd.merge(df1, df2, on='ID')
print(merged_df)
數據分組與聚合
import pandas as pd# 創建 DataFrame
data = {'Category': ['A', 'B', 'A', 'B'],'Value': [10, 20, 30, 40]
}
df = pd.DataFrame(data)# 按 Category 列分組并計算每組的平均值
grouped = df.groupby('Category')
mean_values = grouped.mean()
print(mean_values)
數據可視化
import pandas as pd
import matplotlib.pyplot as plt# 創建 DataFrame
data = {'Year': [2010, 2011, 2012, 2013],'Sales': [100, 150, 200, 250]
}
df = pd.DataFrame(data)# 繪制折線圖
df.plot(x='Year', y='Sales', kind='line')
plt.show()