日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python之数据转换——【rename()方法、cut()函数、get_dummies()函数】

發(fā)布時間:2023/12/13 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python之数据转换——【rename()方法、cut()函数、get_dummies()函数】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 重命名軸索引
  • 離散化連續(xù)數(shù)據(jù)
  • 啞變量處理類別型數(shù)據(jù)


重命名軸索引

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”,
)

上述方法中常用參數(shù)表示的含義如下:

  • index,columns:表示帶轉(zhuǎn)換的行索引和列索引
  • axis:表示軸的名稱,可以使用index或columns,也可以使用數(shù)字0或1
  • copy:表示是否復(fù)制底層的數(shù)據(jù),默認為False
  • inplace:默認為False,表示是否返回新的Pandas對象。如果設(shè)為True,則會忽略復(fù)制的值。
  • level:表示級別名稱,默認為None。對于多級索引,只重命名指定的標簽。

  • 代碼:

    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'}))

    輸出結(jié)果:

    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

    以上也可以根據(jù)str中提供的使字符串變成小寫的功能函數(shù)lower()來重命名索引的名稱,無需再使用字典逐個進行替換。

    代碼:

    print("df.rename(str.lower, axis=1):\n", df.rename(str.lower, axis=1))

    輸出結(jié)果:

    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'}))

    輸出結(jié)果:

    df.rename(index={1: 'a'}):A B C 0 1 9 x a 2 -80 5.9 2 4 5.3 0

    離散化連續(xù)數(shù)據(jù)

    cut(
    x,
    bins,
    right: bool = True,
    labels=None,
    retbins: bool = False,
    precision: int = 3,
    include_lowest: bool = False,
    duplicates: str = “raise”,
    )

    上述函數(shù)中常用參數(shù)表示的含義如下:

  • x:表示要分箱的數(shù)組,必須是一維的
  • bins:接收int和序列類型的數(shù)據(jù)。如果傳入的是int類型的值,則表示在x范圍內(nèi)的等寬單元的數(shù)量(劃分為多少個等間距區(qū)間);如果傳入的是一個序列,則表示將x劃分在指定的序列中,若不在此序列中,則為NaN。
  • right:是否包含右端點,決定區(qū)間的開閉,默認為True
  • labels:用于生成區(qū)間的標簽
  • retbins:是否返回bin
  • precision:精度,默認保留三位小數(shù)
  • include_lowest:是否包含左端點
  • cut()會返回一個Catagorical對象,我們可以將其看作一組表示面元名稱的字符串,它包含了分組的數(shù)量以及不同分類的名稱。


    代碼:

    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))

    輸出結(jié)果:

    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對象中的區(qū)間范圍默認設(shè)置為左開右閉區(qū)間,如果希望設(shè)置左閉右開區(qū)間,則可以在調(diào)用cut()函數(shù)時傳入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))

    輸出結(jié)果:

    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)]

    啞變量處理類別型數(shù)據(jù)

    啞變量又稱虛擬變量、名義變量,從名稱上看就知道,它是人為虛設(shè)的變量,用來反映某個變量的不同類別。使用啞變量處理類別轉(zhuǎn)換,事實上就是將分類變量轉(zhuǎn)換為啞變量矩陣或指標矩陣,矩陣的值通常用“0”或“1”表示。

    在Pandas中,可以使用get_dummies()函數(shù)對類別特征進行啞變量處理。

    get_dummies(
    data,
    prefix=None,
    prefix_sep="_",
    dummy_na=False,
    columns=None,
    sparse=False,
    drop_first=False,
    dtype=None,
    )

    上述函數(shù)中常用參數(shù)表示的含義如下:

  • data:可接受數(shù)組、DataFrame或Series對象,表示啞變量處理的數(shù)據(jù)
  • prefix:表示列名的前綴,默認為None
  • prefix_sep:用于附加前綴作為分隔符使用,默認為“_”
  • dummy_na:表示是否為NaN值添加一列,默認為False
  • columns:表示DataFrame要編碼的列名,默認為None
  • sparse:表示虛擬列是否是稀疏的,默認為False
  • drop_first:是否通過從k個分級類別中刪除第一個級來獲得k-1個分類級別,默認為False

  • 測試對象:

    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='_'))

    輸出結(jié)果:

    col_-80.0 col_5.3 col_9.0 0 0 0 1 1 1 0 0 2 0 1 0 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的Python之数据转换——【rename()方法、cut()函数、get_dummies()函数】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。