Pandas實(shí)現(xiàn)轉(zhuǎn)換產(chǎn)生新列的項(xiàng)目實(shí)踐
時(shí)間序列數(shù)據(jù)在數(shù)據(jù)分析建模中很常見(jiàn),例如天氣預(yù)報(bào),空氣狀態(tài)監(jiān)測(cè),股票交易等金融場(chǎng)景。此處選擇巴黎、倫敦歐洲城市空氣質(zhì)量監(jiān)測(cè)NO2數(shù)據(jù)作為樣例。
列的轉(zhuǎn)換:乘以常數(shù)
拿到表格數(shù)據(jù)后,很多情況下是不能直接就用,還需要對(duì)數(shù)據(jù)進(jìn)行加工處理。比如知道NO2?監(jiān)測(cè)值后,想知道比如倫敦的濃度是多少?假如單位是m g / m 3 mg/m3。這里假設(shè)溫度25攝氏度,大氣壓1013hPa,根據(jù)化學(xué)公式可以知道,轉(zhuǎn)換因子為 1.882。也就是該列每個(gè)元素都乘以因子。
In [1]: air_quality["london_mg_per_cubic"] = air_quality["station_london"] * 1.882
In [2]: air_quality.head()
Out[2]:
station_antwerp ... london_mg_per_cubic
datetime ...
2019-05-07 02:00:00 NaN ... 43.286
2019-05-07 03:00:00 50.5 ... 35.758
2019-05-07 04:00:00 45.0 ... 35.758
2019-05-07 05:00:00 NaN ... 30.112
2019-05-07 06:00:00 NaN ... NaN
[5 rows x 4 columns]
這里,創(chuàng)建新的列,可以用’ [] ', 括號(hào)內(nèi)使用新的列屬性名稱,作為賦值的左邊,右邊為轉(zhuǎn)換操作。
比如這里的乘法計(jì)算,常數(shù)是乘以操作列的每一個(gè)元素。
兩列的計(jì)算
比如需要求Paris 和 Antwerp的監(jiān)測(cè)值的比率,結(jié)果保存到新列中。
In [3]: air_quality["ratio_paris_antwerp"] = (
...: air_quality["station_paris"] / air_quality["station_antwerp"]
...: )
...:
In [4]: air_quality.head()
Out[4]:
station_antwerp ... ratio_paris_antwerp
datetime ...
2019-05-07 02:00:00 NaN ... NaN
2019-05-07 03:00:00 50.5 ... 0.495050
2019-05-07 04:00:00 45.0 ... 0.615556
2019-05-07 05:00:00 NaN ... NaN
2019-05-07 06:00:00 NaN ... NaN
[5 rows x 5 columns]
事實(shí)上,計(jì)算仍然是以元素為單位的,除法符號(hào)應(yīng)用到每個(gè)元素的值。同樣,也可以進(jìn)行加減乘除等運(yùn)算操作 (+, -, *, /,…) 和邏輯運(yùn)算操作 (<, >, ==,…) 。邏輯運(yùn)算,其實(shí)在數(shù)據(jù)表的條件篩選,生成數(shù)據(jù)子集的操作中大量使用。
更復(fù)雜的操作,可以使用apply()函數(shù)。
還有很常見(jiàn)的情形,原來(lái)的列命名不喜歡,想換個(gè)更合適的名字,就可以用rename()函數(shù)。
這里就把“station_antwerp” 轉(zhuǎn)換為“BETR801”
In [8]: air_quality_renamed = air_quality.rename(
...: columns={
...: "station_antwerp": "BETR801",
...: "station_paris": "FR04014",
...: "station_london": "London Westminster",
...: }
...: )
...:
In [9]: air_quality_renamed.head()
Out[9]:
BETR801 FR04014 ... london_mg_per_cubic ratio_paris_antwerp
datetime ...
2019-05-07 02:00:00 NaN NaN ... 43.286 NaN
2019-05-07 03:00:00 50.5 25.0 ... 35.758 0.495050
2019-05-07 04:00:00 45.0 27.7 ... 35.758 0.615556
2019-05-07 05:00:00 NaN 50.4 ... 30.112 NaN
2019-05-07 06:00:00 NaN 61.9 ... NaN NaN
[5 rows x 5 columns]
不僅僅是指定名稱,也可以進(jìn)行map函數(shù)操作。例如,把列名都更換為小寫字母。
In [10]: air_quality_renamed = air_quality_renamed.rename(columns=str.lower)
In [11]: air_quality_renamed.head()
Out[11]:
betr801 fr04014 ... london_mg_per_cubic ratio_paris_antwerp
datetime ...
2019-05-07 02:00:00 NaN NaN ... 43.286 NaN
2019-05-07 03:00:00 50.5 25.0 ... 35.758 0.495050
2019-05-07 04:00:00 45.0 27.7 ... 35.758 0.615556
2019-05-07 05:00:00 NaN 50.4 ... 30.112 NaN
2019-05-07 06:00:00 NaN 61.9 ... NaN NaN
[5 rows x 5 columns]
以上代碼只是一個(gè)簡(jiǎn)單示例,示例代碼中的表達(dá)式可以根據(jù)實(shí)際問(wèn)題進(jìn)行修改。
到此這篇關(guān)于Pandas實(shí)現(xiàn)轉(zhuǎn)換產(chǎn)生新列的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)Pandas 轉(zhuǎn)換產(chǎn)生新列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中splitlines()方法的使用簡(jiǎn)介
這篇文章主要介紹了Python中splitlines()方法的使用簡(jiǎn)介,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
解決plt.savefig()保存到本地的圖片上下左右會(huì)有白邊
這篇文章主要介紹了解決plt.savefig()保存到本地的圖片上下左右會(huì)有白邊的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
python實(shí)現(xiàn)PID溫控算法的示例代碼
PID算法是一種常用的控制算法,用于調(diào)節(jié)和穩(wěn)定控制系統(tǒng)的輸出,這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)pid溫控算法,需要的可以參考下2024-01-01
ubuntu安裝jupyter并設(shè)置遠(yuǎn)程訪問(wèn)的實(shí)現(xiàn)
Jupyter?Notebook是Ipython的升級(jí)版,而Ipython可以說(shuō)是一個(gè)加強(qiáng)版的交互式Shell,本文主要介紹了ubuntu安裝jupyter并設(shè)置遠(yuǎn)程訪問(wèn)的實(shí)現(xiàn),感興趣的可以了解一下2022-03-03
Python搭建自己IP代理池的方法實(shí)現(xiàn)
本文主要介紹了Python搭建自己IP代理池的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
如何使用django的MTV開(kāi)發(fā)模式返回一個(gè)網(wǎng)頁(yè)
這篇文章主要介紹了如何使用django的MTV開(kāi)發(fā)模式返回一個(gè)網(wǎng)頁(yè),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python黑魔法遠(yuǎn)程控制開(kāi)機(jī)的實(shí)例
這篇文章主要介紹了Python黑魔法遠(yuǎn)程控制開(kāi)機(jī)的實(shí)例,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04
Python機(jī)器學(xué)習(xí)pytorch交叉熵?fù)p失函數(shù)的深刻理解
這篇文章主要為大家介紹了Python機(jī)器學(xué)習(xí)中對(duì)交叉熵?fù)p失函數(shù)的深刻理解,文中作出了詳細(xì)易懂的講解,有需要的朋友可以借鑒參考下希望能夠有所幫助2021-10-10
Python調(diào)整數(shù)組形狀如何實(shí)現(xiàn)
這篇文章主要介紹了Python調(diào)整數(shù)組形狀如何實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12
Python操作Mysql實(shí)例代碼教程在線版(查詢手冊(cè))
本文介紹了Python操作MYSQL、執(zhí)行SQL語(yǔ)句、獲取結(jié)果集、遍歷結(jié)果集、取得某個(gè)字段、獲取表字段名、將圖片插入數(shù)據(jù)庫(kù)、執(zhí)行事務(wù)等各種代碼實(shí)例和詳細(xì)介紹,代碼居多,是一桌豐盛唯美的代碼大餐2013-02-02

