日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 99精品视频在线看 | 中文字幕亚洲无线码在线一区 | 在线播放国产视频 | 亚洲伦理中文字幕 | 一道本在线播放 | 色婷婷综合激情 | 亚洲欧洲国产日韩 | 精品伦精品一区二区三区视频密桃 | av资源站| 激情福利 | 国产精品sm| 香蕉毛片| 性色福利| 98成人网| 中文字幕91 | 国产在线一区视频 | 亚洲精品国产精品乱码不99按摩 | 91午夜交换视频 | 亚洲av无码乱码国产精品 | 打屁屁日本xxxxx变态 | 亚欧精品在线 | 久久久久国产免费 | 精品无码久久久久成人漫画 | 五月天中文字幕av | 97干干干 | 黄色一级片在线免费观看 | 久久无码人妻一区二区三区 | 免费观看的av网站 | 啪啪免费av | 男插女在线观看 | 中国黄色录像一级片 | 成年人黄色在线观看 | 国产性按摩| 日韩啊啊啊| 奶水喷溅虐奶乳奴h文 | 亚洲1级片 | 日韩国产专区 | 亚洲免费一二三区 | 欧美激情视频二区 | 噜噜噜亚洲色成人网站 | 米奇7777狠狠狠狠视频 | 自拍偷拍亚洲天堂 | 日韩美女爱爱 | 伊人91视频 | 亚洲综合在线视频 | 亚洲毛片大全 | 男人天堂av网 | 91欧美激情一区二区三区成人 | 夜夜激情 | 高h在线观看 | 国产中文字字幕乱码无限 | 久久久免费在线观看 | 精品亚洲一区二区三区 | 国产视频黄 | 欧美日本在线观看 | 国产又粗又猛又爽又黄 | 国产欧美精品一区二区三区 | 可以免费看毛片的网站 | av在线电影网 | 一级特黄aaa| 国产又爽又猛又粗的视频a片 | 欧美a免费 | 亚洲爱情岛论坛永久 | 福利精品在线 | 成人免费播放 | 国产91精品久久久久 | 青青国产在线观看 | 久久国产免费观看 | 黄色片免费在线播放 | 亚洲精品视频网址 | 亚洲欧美日韩国产综合 | 少妇中文字幕 | 亚洲五月激情 | 97影院手机版| 在线观看超碰 | 亚洲综合小说网 | 手机看片福利永久 | 人人爽人人爽人人爽人人爽 | 日本网站在线免费观看 | 奇米综合 | 美女撒尿无遮挡网站 | 一级爱爱片 | 日日嗨av一区二区三区四区 | 九九视频在线观看 | 中文字幕成人一区 | 成人手机视频 | 国产精品视频一二三 | 欧美日韩亚洲不卡 | 大片视频免费观看视频 | 日产精品久久久久 | 老司机午夜在线 | 逼逼爱插插网站 | 手机在线看片你懂的 | 黄色一级网站 | 在线超碰91 | 欧美精品一区二区三区久久久 | 在线看91 | 二级毛片视频 | 玖玖爱在线观看 |