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

歡迎訪問 生活随笔!

生活随笔

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

python

【Python】分享14条非常实用的Pandas函数方法,建议珍藏!!

發布時間:2025/3/12 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】分享14条非常实用的Pandas函数方法,建议珍藏!! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天和大家來分享幾個十分好用的pandas函數,可能平時并不是特別的常見,但是卻能夠幫助我們在平時的工作、學習當中極大的提高效率,小編也希望讀者朋友們在看完本文之后能夠大有收獲

1

ExcelWriter

使用ExcelWriter()可以向同一個excel的不同sheet中寫入對應的表格數據,首先要創建一個writer對象,傳入的主要參數為文件名及其路徑

import pandas as pda = pd.DataFrame({"a": [1, 2, 3, 4, 5],"b":?[2,?5,?6,?8,?10], }) b = pd.DataFrame({"c":?[5,?2,?3,?1,?4],"d":?[2,?5,?7,?8,?10], }) #?寫入到同一個excel當中去 with pd.ExcelWriter("data.xlsx") as writer:a.to_excel(writer, sheet_name="a_sheet", index = False)b.to_excel(writer, sheet_name="b_sheet", index = False)

2

pipe

pipe()方法可以將一連串的函數以鏈式的結構嵌套在數據集當中,例如一個臟數據集當中有重復值、空值和極值等等,我們分別建立了3個函數來"drop_duplicates","remove_outliers"和"fill_nans"分別處理上面提到的3個問題,然后用pipe()方法將這三個函數以鏈式的結構串聯起來作用在同一個數據集上面,代碼如下圖所示

df_preped?=?(df.pipe(drop_duplicates).pipe(remove_outliers,?['price',?'carat',?'depth']).pipe(encode_categoricals,?['cut',?'color',?'clarity']))

3

explode

我們可以通過一個簡單的例子來說明一下該函數的作用,

df = pd.Series([1, 6, 7, [46, 56, 49], 45, [15, 10, 12]] ).to_frame("dirty") ?

df.explode("dirty", ignore_index=True)

要是遇到一行的數據當中含有多個元素,explode()方法可以將這一行的數據展開到多行,ignore_index = True,意味著數據展開來之后,索引也會逐行地遞增

4

between

between是用來提取出給定范圍當中的值的,看下面的例子

data = {'name': ['John', 'Mike', 'Tom', 'Greg', 'Jim'],'income':?[8000,?9000,?10000,?10000,?20000],'age': [20, 24, 25, 23, 28]} df = pd.DataFrame(data)

我們挑選出收入在8000到10000范圍之內的數據

df[df['income'].between(8000, 10000, inclusive='neither')]

5

convert_dtypes

pandas當中的convert_dtypes可以自動推斷數據類型并且進行轉化,例如

df = pd.DataFrame({'a':[1,2,3],'b':[0.55,0.66,1.55],'c':['Jack','Tony','Posi']} ) df.dtypes

df.convert_dtypes().dtypes

6

select_dtypes

pandas當中的select_dtypes()方法功能是返回那些指定數據類型的列,當中的include顧名思義就是篩選出指定數據類型的列,例如下面我們挑選出是bool數據類型的數據來

a = pd.DataFrame({"a": [1, 2, 3, 4, 5],"b": [True, False, False, True, True],"c": ["John", "Tom", "Mike", "Jim", "Dylan"] }) a.select_dtypes(include='bool')

而exclude就是排除掉指定數據類型的數據,將其他類型的數據篩選出來

a.select_dtypes(exclude='bool')

7

mask

pandas當中的mask()方法主要是對按照指定的條件對數據集當中的數據進行替換,例如下面數據集當中對于大于0的數據替換成0

df = pd.DataFrame({"A":[12, 4, 5, 44, 1], "B":[5, 2, 54, 3, 2], "C":[20, 16, 7, 3, 8], "D":[14,?3,?17,?2,?6]})?

#?將大于10的數字替換成0 df.mask(df?>?10,?0)

8

nlargest和nsmallest

nlargest和nsmallest的作用在于可以讓我們看到根據特定的列排序的最大或者是最小的若干列,例如

data = {'name': ['John', 'Mike', 'Tom', 'Greg', 'Jim'],'income': [2500, 4500, 5000, 3000, 2000],'age': [20, 24, 25, 23, 28]} df = pd.DataFrame(data)

我們按照income這一列將數據排序,并且顯示出最大的前3行

df.nlargest(3, 'income')

9

idxmax和idxmin

主要用來返回最大值或者是最小值的位置,也就是索引值

data = {'income': [8000, 9000, 10000, 10000, 20000],'age':?[20,?24,?25,?23,?28]} df?=?pd.DataFrame(data,?index?=?['John',?'Mike',?'Tom',?'Greg',?'Jim'])

我們找出income最高和最低的那個人是誰

df['income'].idxmax() >>>> Jimdf['income'].idxmin() >>> John

10

clip

在給出指定范圍的前提下,對于數據集當中超出該范圍的值進行更改,例如我們將范圍限定在-4到6之間,超過6的數字會被設置為6,超過-4的數字會被設置為-4

data = {'col_0': [9, -3, 0, -1, 5],'col_1': [-2, -7, 6, 8, -5]} df = pd.DataFrame(data)

df.clip(-4, 6)

11

at_time和between_time

pandas當中at_time()方法和between_time()方法主要是用來處理時間序列的數據,根據給出的時間點或者時間范圍來篩選出數據

index?=?pd.date_range("2021-08-01",?periods=100,?freq="H") data?=?pd.DataFrame({"col":?list(range(100))},?index=index) data.head()

我們篩選出那些下午2點的數據

data.at_time("14:00")

當然我們可以使用between_time這個方法來挑選出某個時間范圍內的數

data.between_time("11:00", "12:00")

?

12

at和iat

我們一般用pandas當中的loc和iloc比較多,用來篩選出我們想要的數據,而at和iat也能夠實現loc和iloc的功能,而且更加的快捷

data = {'name': ['John', 'Mike', 'Tom', 'Greg', 'Jim'],'income': [8000, 9000, 10000, 10000, 20000],'age': [20, 24, 25, 23, 28]} df = pd.DataFrame(data)

# [index, label] df.at[1, "income"] >>>?9000#?[index, index] df.iat[2, 3] >>> 1000

13

pandas styler

pandas還能夠對數據集當中的數據進行上色,我們可以通過該方法將某些我們覺得重要的數據給標注出來,例如我們對數據集中每列的最大值最小值標注出來

df = pd.DataFrame(np.random.randn(5, 5), columns=list('ABCDE'))#?我們標注出最大、最小的值 df.style.highlight_max(color = "yellow")

具體的可以去小編另外寫的一篇文章中去看個究竟:厲害了,Pandas表格還能五彩斑斕的展示數據,究竟是怎么做到的呢?

14

hasnans

假如數據集當中存在空值,可以用hasnans方法來檢查,要是有空值,則返回True,反之則返回False

s = pd.Series([2, 4, 6, "abcde", np.nan]) s.hasnans >>>>?True 往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》課件合集 本站qq群851320808,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【Python】分享14条非常实用的Pandas函数方法,建议珍藏!!的全部內容,希望文章能夠幫你解決所遇到的問題。

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