import pandas as pd
# 讀取 CSV 檔案
df = pd.read_csv('data.csv')
# 讀取 Excel 檔案
df = pd.read_excel('data.xlsx')
# 讀取 JSON 檔案
df = pd.read_json('file_path')
# 觀察前 n 筆資料
df.head(n)
# 觀察後 n 筆資料
df.tail(n)
# 觀察資料形狀
df.shape
# 觀察資料欄位名稱
df.columns
# 觀察欄位資料型態
df.dtypes
# 觀察資料的行列數、欄位名稱、資料類型等
df.info()
# 觀察資料的統計資訊
df.describe()
# 選取特定欄位
df[['column1', 'column2']]
# 根據欄位值篩選資料
df[df['column'] == value]
# 根據多個欄位值篩選資料
df[(df['column1'] == value1) & (df['column2'] == value2)]
# 根據欄位值篩選並排序資料
df[df['column'] > value].sort_values(by='column')
# 重命名欄位
df.rename(columns={'old_column': 'new_column'})
# 資料分組
df.groupby('column').mean()
# 將欄位內容轉換成數值型態
df['column'] = pd.to_numeric(df['column'])
# 將欄位的資料型態轉換成日期格式
df['date_column'] = pd.to_datetime(df['date_column'])
# 將欄位中的資料拆分成多個欄位
new_columns = df['column'].str.split('-', expand=True)
# 將多個 DataFrame 橫向合併
df_merged = pd.concat([df1, df2, df3], axis=1)
# 將多個 DataFrame 縱向合併
df_merged = pd.concat([df1, df2, df3], axis=0)
欄位操作
選取:
# 選取單一欄位
df['column']
# 選取多個欄位
df[['column1', 'column2']]
# 根據欄位位置選取欄位
df.iloc[:, 1:3]
# 根據欄位名稱選取欄位
df.loc[:, ['column1', 'column2']]
新增:
# 新增欄位
df['new_column'] = [1, 2, 3]
# 根據現有欄位計算新增欄位
df['new_column'] = df['column1'] + df['column2']
# 根據條件新增欄位
df['new_column'] = df['column'].apply(lambda x: 1 if x > 10 else 0)
刪除:
# 移除單一欄位
df.drop(columns='column', inplace=True)
# 移除多個欄位
df.drop(columns=['column1', 'column2'], inplace=True)
# 根據欄位位置移除欄位
df.drop(df.columns[1:3], axis=1, inplace=True)
# 根據欄位名稱移除欄位
df.drop(columns=['column1', 'column2'], inplace=True)
資料清理:
# 檢查是否有缺失值
df.isnull().sum()
# 刪除有缺失值的資料
df.dropna(axis=1, inplace=True)
# 將缺失值填補為平均數
df.fillna(df.mean(), inplace=True)
# 刪除重複資料
df.drop_duplicates(inplace=True)
# 使用前一筆資料補上缺失值
df.fillna(method='ffill', inplace=True)
# 使用後一筆資料補上缺失值
df.fillna(method='bfill', inplace=True)
# 輸出為 CSV 檔案
df.to_csv('output.csv', index=False)
# 輸出為 Excel 檔案
df.to_excel('output.xlsx', index=False)