Python之数据转换——【rename()方法、cut()函数、get_dummies()函数】
文章目錄
- 重命名軸索引
- 離散化連續數據
- 啞變量處理類別型數據
重命名軸索引
rename(
self,
mapper: Optional[Renamer] = None,
*,
index: Optional[Renamer] = None,
columns: Optional[Renamer] = None,
axis: Optional[Axis] = None,
copy: bool = True,
inplace: bool = False,
level: Optional[Level] = None,
errors: str = “ignore”,
)
上述方法中常用參數表示的含義如下:
代碼:
df = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '-80', '5.3'],'C': ['x', '5.9', '0']}) print("df:\n", df) print("df.rename:\n", df.rename(columns={'A': 'a', 'B': 'b', 'C': 'c'}))輸出結果:
df:A B C 0 1 9 x 1 2 -80 5.9 2 4 5.3 0 df.rename:a b c 0 1 9 x 1 2 -80 5.9 2 4 5.3 0以上也可以根據str中提供的使字符串變成小寫的功能函數lower()來重命名索引的名稱,無需再使用字典逐個進行替換。
代碼:
print("df.rename(str.lower, axis=1):\n", df.rename(str.lower, axis=1))輸出結果:
df.rename(str.lower, axis=1):a b c 0 1 9 x 1 2 -80 5.9 2 4 5.3 0也可以對行索引進行重命名
代碼:
print("df.rename(index={1: 'a'}):\n", df.rename(index={1: 'a'}))輸出結果:
df.rename(index={1: 'a'}):A B C 0 1 9 x a 2 -80 5.9 2 4 5.3 0離散化連續數據
cut(
x,
bins,
right: bool = True,
labels=None,
retbins: bool = False,
precision: int = 3,
include_lowest: bool = False,
duplicates: str = “raise”,
)
上述函數中常用參數表示的含義如下:
cut()會返回一個Catagorical對象,我們可以將其看作一組表示面元名稱的字符串,它包含了分組的數量以及不同分類的名稱。
代碼:
ages = [20, 22, 25, 27, 21, 23, 37, 31, 61, 45, 32] bins = [0, 18, 25, 35, 60, 100] print("pd.cut(ages, bins):\n", pd.cut(ages, bins))輸出結果:
pd.cut(ages, bins):[(18, 25], (18, 25], (18, 25], (25, 35], (18, 25], ..., (35, 60], (25, 35], (60, 100], (35, 60], (25, 35]]Length: 11 Categories (5, interval[int64]): [(0, 18] < (18, 25] < (25, 35] < (35, 60] < (60, 100]]Catagorical對象中的區間范圍默認設置為左開右閉區間,如果希望設置左閉右開區間,則可以在調用cut()函數時傳入right=False進行修改。
測試對象:
df = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '-80', '5.3'],'C': ['x', '5.9', '0']})代碼:
print("pd.cut(df['B']):\n", pd.cut(df['B'].astype(dtype='float'), bins, right=False))輸出結果:
pd.cut(df['B']):0 [0.0, 18.0) 1 NaN 2 [0.0, 18.0) Name: B, dtype: category Categories (5, interval[int64]): [[0, 18) < [18, 25) < [25, 35) < [35, 60) < [60, 100)]啞變量處理類別型數據
啞變量又稱虛擬變量、名義變量,從名稱上看就知道,它是人為虛設的變量,用來反映某個變量的不同類別。使用啞變量處理類別轉換,事實上就是將分類變量轉換為啞變量矩陣或指標矩陣,矩陣的值通常用“0”或“1”表示。
在Pandas中,可以使用get_dummies()函數對類別特征進行啞變量處理。
get_dummies(
data,
prefix=None,
prefix_sep="_",
dummy_na=False,
columns=None,
sparse=False,
drop_first=False,
dtype=None,
)
上述函數中常用參數表示的含義如下:
測試對象:
df = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '-80', '5.3'],'C': ['x', '5.9', '0']})代碼:
test1 = df['B'].astype(dtype='float') print(pd.get_dummies(test1, prefix='col', prefix_sep='_'))輸出結果:
col_-80.0 col_5.3 col_9.0 0 0 0 1 1 1 0 0 2 0 1 0 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Python之数据转换——【rename()方法、cut()函数、get_dummies()函数】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基础的shell编程问题(一)
- 下一篇: leetcode771. 宝石与石头