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

歡迎訪問 生活随笔!

生活随笔

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

python

【Python】图解Pandas的宝藏函数:assign

發布時間:2025/3/12 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】图解Pandas的宝藏函数:assign 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

公眾號:尤而小屋
作者:Peter
編輯:Peter

在我們處理數據的時候,有時需要根據某個列進行計算得到一個新列,以便后續使用,相當于是根據已知列得到新的列,這個時候assign函數非常方便。下面通過實例來說明函數的的用法。

Pandas文章

本文是Pandas文章連載系列的第21篇,主要分為3類:

1、基礎部分:1-16篇,主要是介紹Pandas中基礎和常用操作,比如數據創建、檢索查詢、排名排序、缺失值/重復值處理等常見的數據處理操作

2、進階部分:第17篇開始講解Pandas中的高級操作方法

3、對比SQL,學習Pandas:將SQL和Pandas的操作對比起來進行學習

參數

assign函數的參數只有一個:DataFrame.assign(**kwargs)。

**kwargs:?dict?of?{str:?callable?or?Series}

關于參數的幾點說明:

  • 列名是關鍵字keywords

  • 如果列名是可調用的,那么它們將在DataFrame上計算并分配給新的列

  • 如果列名是不可調用的(例如:Series、標量scalar或者數組array),則直接進行分配

最后,這個函數的返回值是一個新的DataFrame數據框,包含所有現有列和新生成的列

導入庫

import?pandas?as?pd import?numpy?as?np#?模擬數據df?=?pd.DataFrame({"col1":[12,?16,?18],"col2":["xiaoming","peter",?"mike"]})df
col1col2012
12xiaoming
16peter
18mike

實例

當值是可調用的,我們直接在數據框上進行計算:

方式1:直接調用數據框

#?方式1:數據框df上調用 #?使用數據框df的col1屬性,生成col3df.assign(col3=lambda?x:?x.col1?/?2?+?20)
col1col2col3012
12xiaoming26.0
16peter28.0
18mike29.0

我們可以查看原來的df,發現它是不變的

df??#?原數據框不變的
col1col2012
12xiaoming
16peter
18mike

操作字符串類型的數據:

df.assign(col3=df["col2"].str.upper())

方式2:調用Series數據

可以通過直接引用現有的Series或序列來實現相同的行為:

#?方式2:調用現有的Series來計算df.assign(col4=df["col1"]?*?3?/?4?+?25)df??#?原數據不變
col1col2012
12xiaoming
16peter
18mike

在Python3.6+中,我們可以在同一個賦值中創建多個列,并且其中一個列還可以依賴于同一個賦值中定義的另一列,也就是中間生成的新列可以直接使用

df.assign(col5=lambda?x:?x["col1"]?/?2?+?10,?????????col6=lambda?x:?x["col5"]?*?5,??#?在col6計算中直接使用col5????????col7=lambda?x:?x.col2.str.upper(),?????????col8=lambda?x:?x.col7.str.title()??#?col8中使用col7 )df???#?原數據不變
col1col2012
12xiaoming
16peter
18mike

如果我們重新分配的是一個現有的列,那么這個現有列的值將會被覆蓋:

df.assign(col1=df["col1"]?/?2)??#?col1直接被覆蓋
col1col2012
6.0xiaoming
8.0peter
9.0mike

對比apply函數

我們在pandas中同樣可以使用apply函數來實現

df??#?原數據
col1col2012
12xiaoming
16peter
18mike

生成一個副本,我們直接在副本上操作:

df1?=?df.copy()??#?生成副本,直接在副本上操作 df2?=?df.copy()df1
col1col2012
12xiaoming
16peter
18mike
df1.assign(col3=lambda?x:?x.col1?/?2?+?20)
col1col2col3012
12xiaoming26.0
16peter28.0
18mike29.0
df1??#?df1保持不變
col1col2012
12xiaoming
16peter
18mike
df1["col3"]?=?df1["col1"].apply(lambda?x:x?/?2?+?20)df1??#?df1已經發生了變化
col1col2col3012
12xiaoming26.0
16peter28.0
18mike29.0

我們發現:通過assign函數的操作,原數據是不變的,但是通過apply操作的數據已經變化了

BMI指數

最后在模擬一份數據,計算每個人的BMI指數。

身體質量指數,是BMI指數,簡稱體質指數,是國際上常用的衡量人體胖瘦程度以及是否健康的一個標準。

體重身高

其中:體重單位是kg,身高單位是m

df2?=?pd.DataFrame({"name":["xiaoming","xiaohong","xiaosu"],"weight":[78,65,87],"height":[1.82,1.75,1.89] })df2
nameweightheight012
xiaoming781.82
xiaohong651.75
xiaosu871.89
#?使用assign函數實現df2.assign(BMI=df2["weight"]?/?(df2["height"]?**?2))df2?#?不變
nameweightheight012
xiaoming781.82
xiaohong651.75
xiaosu871.89
df2["BMI"]?=?df2["weight"]?/?(df2["height"]?**?2)df2??# df2生成了一個新的列:BMI

總結

通過上面的例子,我們發現:

  • 使用assign函數生成的DataFrame是不會改變原來的數據,這個DataFrame是新的

  • assign函數能夠同時操作多個列名,并且中間生成的列名能夠直接使用

  • assign和apply的主要區別在于:前者不改變原數據,apply函數是在原數據的基礎上添加新列

  • 往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》視頻課

    本站qq群851320808,加入微信群請掃碼:

    總結

    以上是生活随笔為你收集整理的【Python】图解Pandas的宝藏函数:assign的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 超碰免费看 | 一区二区三区在线 | 波多野结衣视频一区 | 亚洲精品久久久久久久久久 | 国产精品成人在线观看 | 仙踪林久久久久久久999 | 美女xx00| 色窝窝无码一区二区三区成人网站 | 精品无码久久久久国产 | 国产一区二区三区视频在线观看 | av日日夜夜 | 国产区在线视频 | 围产精品久久久久久久 | 亚洲最大福利视频 | 老牛影视av一区二区在线观看 | 日韩性网 | 中文字幕av久久爽一区 | 日韩欧美理论片 | 国产又黄又湿 | 国产精品调教 | 真人毛片97级无遮挡精品 | 国产97色在线 | 日韩 | 日批免费观看视频 | 九色国产在线 | 男生看的污网站 | 内射国产内射夫妻免费频道 | www毛片| 极品美女销魂一区二区三区 | jizz日本在线播放 | 污视频网站在线 | 精品人人人人 | 国产99久一区二区三区a片 | 免费一区视频 | 熟妇高潮精品一区二区三区 | 丁香婷婷在线观看 | 97成人在线| 精品人妻一区二区三区久久夜夜嗨 | 国产不雅视频 | 人人操在线播放 | 国产精品成人久久电影 | 在线观看成人动漫 | 永久久久久久 | 日韩人妻一区二区三区蜜桃 | 蜜桃视频在线观看网站 | 色wwwwww| freesexvideos第一次 | 亚洲综合无码一区二区 | 日本黄色激情视频 | 色婷婷狠狠18禁久久 | 精品人妻无码一区二区三 | 韩毛片| 日本视频免费看 | 国模大尺度自拍 | 亚洲精品推荐 | 伊人久久精品 | 日韩精品一区二区三区国语自制 | 福利久久久 | 男人日女人b视频 | 日韩tv | 亚洲欧美另类在线 | wwwxxx色| 日韩在线一二三区 | 久久加久久 | 日韩理论视频 | 亚洲天堂网在线观看 | 亚洲色图国产 | 特黄特色特刺激免费播放 | 久久成人国产精品入口 | 日韩黄色一级视频 | 综合色av | √资源天堂中文在线视频 | jizz性欧美2| 国产精品精品 | 日韩一级生活片 | 欧美日韩国产激情 | 国产女人高潮的av毛片 | 欧美精品v | 爱爱免费网址 | 人妻精品久久久久中文字幕 | 福利午夜视频 | 精品亚洲乱码一区二区 | 直接看的毛片 | 婷婷色中文 | 国产三极片 | 深夜激情影院 | 青青久久国产 | 欧美精品在线观看 | 九色porny丨精品自拍视频 | 中文字幕Av日韩精品 | 久久9999久久免费精品国产 | 久久精品中文闷骚内射 | 久久99精品久久久久久水蜜桃 | 国产夫妻性生活视频 | 宿舍女女闺蜜调教羞辱 | 中文字幕手机在线视频 | 国产片天天弄 | 中文字幕激情视频 | 亚洲欧美另类综合 | 69视频网址 |