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

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

    主站蜘蛛池模板: 日本精品入口免费视频 | 四虎综合 | 日本免费精品视频 | 久久亚洲少妇 | 欧美偷拍精品 | 国产精品无码AV | 爱爱色图 | 国产电影一区二区三区爱妃记 | 日韩精品视频免费播放 | 奇米影视777四色 | 欧美福利影院 | 一级美女黄色片 | 国产亚洲精品久久久久久青梅 | 狠狠久| 婷婷激情影院 | 国产乱码精品一区二三赶尸艳谈 | 丁香激情婷婷 | 蜜桃成人无码区免费视频网站 | 五月综合激情 | 成人一区二区av | 日韩欧美成人免费视频 | 亚洲最新在线视频 | 精品国产AV色欲天媒传媒 | 两性视频久久 | 国产欧美日韩精品区一区二污污污 | 亚洲视频 欧美视频 | 色综合天天色综合 | 操操操干干干 | 欧美三极片 | 婷婷久久一区 | 富婆如狼似虎找黑人老外 | 蜜臀在线播放 | 国产av国片偷人妻麻豆 | 日韩一级在线视频 | 熟妇人妻中文字幕 | 老师上课夹震蛋高潮了 | 亚洲av无码国产综合专区 | 国产色吧| 玖草在线视频 | 91av视频网站 | 国产一区在线免费观看 | 欧美午夜精品一区二区 | 亚洲图片一区 | 精品二区在线观看 | 喷潮在线 | 女人叫床高潮娇喘声录音mp3 | 小明天天看 | 超碰香蕉 | 国产亚洲欧美在线 | 亚洲最大成人网色 | 国内偷拍一区 | 夜色视频在线观看 | 欧美高清另类 | wwwwxxxx国产 | 久久久夜精品 | 成人久久电影 | avav亚洲| 国产精品久久久久久亚洲伦 | 天天插天天干天天操 | 伊人网久久久 | 日韩二三区 | 国产精品成人自拍 | 成人免费国产 | 一区二区三区四区在线播放 | 精品一区国产 | 瑟瑟视频在线看 | 日本一区二区视频在线 | 欧美国产日韩在线观看成人 | 国产大片中文字幕 | 欧美激情一级精品国产 | 久久久久久久福利 | 久久66热这里只有精品 | 快播av在线 | www.jizzcom| 亚洲污视频 | 偷自在线 | 亚洲成熟少妇视频在线观看 | 影音先锋欧美资源 | 91国模| 欧美与黑人午夜性猛交久久久 | 午夜精品极品粉嫩国产尤物 | 日韩免费三级 | 嫩草视频在线观看 | 国产一区二区在线观看免费 | 国产美女福利在线 | 国产精品美女久久久网av | 欧美精品久久天天躁 | 4438国产精品一区二区 | 麻豆久久久午夜一区二区 | 黄金网站在线观看 | 日韩在线成人 | 欧美日韩少妇 | 国产巨乳在线观看 | 亚洲综合精品国产一区二区三区 | 日本午夜影视 | 宅男av | 亚洲av综合色区无码一区 | 人妻无码一区二区三区久久99 | 永久免费汤不热视频 |