鋒哥原創的Pandas2?Python數據處理與分析 視頻教程:??
2025版 Pandas2 Python數據處理與分析 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili
Pandas 提供了靈活的方法來處理數據類型轉換,以下是常見操作及代碼示例:
1. 查看數據類型
import pandas as pddf = pd.DataFrame({'A': ['1', '2', '3'],'B': [4, 5, 6],'C': ['2025-01-01', '2025-02-01', '2025-03-01']
})print(df.dtypes)
# 輸出:
# A object
# B int64
# C object
2. 使用 astype() 轉換類型
基本轉換:
df['A'] = df['A'].astype(int) # 轉換為整數
df['B'] = df['B'].astype(float) # 轉換為浮點數
運行結果:
3. 使用 pd.to_numeric() 處理數值轉換
to_numeric()方法詳解:
pandas.to_numeric(arg, errors='raise', downcast=None
)
參數說明:
參數 | 類型 | 說明 |
---|---|---|
arg | Series, list, 1D數組 | 需要轉換的輸入數據 |
errors | {'ignore', 'raise', 'coerce'}, 默認 'raise' | 控制無效值的處理方式: - 'raise' : 遇到非數值字符報錯(默認) - 'coerce' : 將無效值轉為 NaN - 'ignore' : 保留原值,不轉換 |
downcast | {'integer', 'signed', 'unsigned', 'float'}, 默認 None | 降低內存占用: - 'integer' /'signed' /'unsigned' : 尋找最小整數類型(如 int8 , int16 ) - 'float' : 尋找最小浮點類型(如 float32 ) |
使用 errors='coerce'
避免轉換失敗導致程序中斷。
import pandas as pd
s = pd.Series(['1', '2', 'apple', '4'])
s_numeric = pd.to_numeric(s, errors='coerce') # 無效值轉為 NaN
# 輸出: [1.0, 2.0, NaN, 4.0]s_ignore = pd.to_numeric(s, errors='ignore') # 保留原數據
to_numeric函數中的downcast參數用于控制數值類型的轉換,可以減少內存使用量,同時保持數據的準確性。
import pandas as pds = pd.Series([1.0, 2.0, 3.0])
s = pd.to_numeric(s, downcast='integer') # 轉換為最小整數類型 (int8/int16/...)
4. 日期時間轉換to_datetime()
import pandas as pddf = pd.DataFrame({'A': ['1', '2', '3'],'B': [4, 5, 6],'C': ['2025-01-01', '2025-02-01', 'ccc']
})
df['C'] = pd.to_datetime(df['C'],errors='coerce') # 轉換為 datetime 類型
5. 處理缺失值與類型推斷
填充缺失值后轉換:
import pandas as pddf = pd.DataFrame({'A': ['1', '2', '3'],'B': [4, 5, 6],'C': ['2025-01-01', '2025-02-01', 'ccc']
})
df['D'] = ['10', None, '30']
df['D'] = df['D'].fillna(0).astype(int) # 填充 NaN 后轉為整數
Pandas可以用以下方法智能地推斷各列的數據類型,會返回一個按推斷修改后的DataFrame。
import pandas as pddf = pd.DataFrame({'A': ['1', '2', '3'],'B': [4, 5, 6]
})
df = df.convert_dtypes() # 自動推斷更合適的數據類型