數(shù)據(jù)處理是數(shù)據(jù)分析的重要組成部分,包括了各種任務(wù),如清理、重組、合并、刪除重復(fù)項(xiàng)、刪除 Null 或 NaN 值等。Pandas 提供了大量的函數(shù)集來(lái)執(zhí)行各種數(shù)據(jù)預(yù)處理任務(wù)。 Pandas 提供了兩種類型的數(shù)據(jù)結(jié)構(gòu)來(lái)處理數(shù)據(jù),包括 Series 和 DataFrame。在這篇文章中,我整理了 18 個(gè)我在數(shù)據(jù)預(yù)處理任務(wù)中最常用的函數(shù)。 1)DataFrame.select_dtypes( ): 基于列 dtypes 返回 DataFrame 列的子集。 當(dāng)你想只選擇具有特定數(shù)據(jù)類型的列或具有特定數(shù)據(jù)類型的值時(shí),例如:“object”,“int64”,np.number 等。 語(yǔ)法: DataFrame.select_dtypes(include = “reqd dtype”, exclude = “reqd dtype”) 例: #create DataFrame-----------------df = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'Player': ['A','B' , 'C', 'D', 'E'], 'rebounds': [11, 8, 10, 6, 6]})#checks column datatype--------------------df.info()#selecting reqd datatype----------------------df.select_dtypes(include = 'int64') 輸出: 2)DataFrame.drop_duplicates( ): 從 DataFrame 中刪除重復(fù)的行,通常用于數(shù)據(jù)清理任務(wù)。在數(shù)據(jù)集中保留重復(fù)值會(huì)影響分析結(jié)果,因此數(shù)據(jù)清理對(duì)于避免誤判非常重要。 語(yǔ)法: DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False) 參數(shù):
例: #create DataFrame----------------------------df = pd.DataFrame({'points': [25, 12, 15, 14, 19,25,12,14], 'Player': ['A','B' , 'C', 'D', 'E','A','B','D'], 'rebounds': [11, 8, 10, 6, 6,11,8,6]})#drop duplicates-----------------------------------df = df.drop_duplicates(subset = ['Player'], keep ='first', ignore_index = False)df 輸出: 3)DataFrame.str.lower( ): 將 Series/Index 中的字符串轉(zhuǎn)換為小寫(xiě)。同樣,對(duì)于大寫(xiě),我們可以使用 DataFrame.str.upper() 。 語(yǔ)法: Series.str.lower() 例: #create DataFrame--------------------------------df = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'Player': ['ADam','BOB' , 'COT', 'DerrICK','EtHan'], 'Team' : ['a','B','C','d','e'], 'rebounds': [11, 8, 10, 6, 6]})#converting column values of Player and Team into lowercase---------columns = df.select_dtypes(include = 'object')columns = list(columns.columns)for i in columns: df[i] = df[i].str.lower()df 輸出: 4)Series.str.match() : Series.str.match() 函數(shù)用于確定給定序列對(duì)象中的數(shù)據(jù)是否與正則表達(dá)式匹配。 語(yǔ)法: Series.str.match(pat, case=True, flags=0, na=None) 參數(shù):
例: city = pd.Series(['Kolkata','Delhi','Mumbai', 'Sikkim','Bangalore'])index = ['City_1','City_2','City_3','City_4','City_5']city.index = indexcity res = city.str.match(pat = '(Ranchi)|(Mumbai)')res res = city.str.match(pat = '([A-Z]a.)')res 5)pd.set_option( ): 例: data = {'Score' : [10, 15, 2, 31, 4, 51, 26, 17, 28, 29], 'Player' : ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']}df = pd.DataFrame(data)df pd.set_option('display.max_rows', 5)df pd.set_option( ) can also be used to format high number decimal points/scientific notation to normal notation. 例 : import numpy as npimport pandas as pddf = pd.DataFrame({ 'Name': ['a', 'b', 'c','d','e','f','g'], 'Value': np.random.rand(7)**3})df #formatting upto 2 decimal placespd.set_option('display.float_format', lambda x: '%0.2f' % x)df 輸出: 6)df.iteritems( ): 用于迭代(列名、系列)。循環(huán)訪問(wèn) DataFrame 列,返回一個(gè)元組,其中列名和內(nèi)容是一個(gè)序列。該方法生成 DataFrame 的迭代器對(duì)象,允許我們迭代 DataFrame 的每一列。 例: #create DataFramedf = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'Player': ['Adam','Bob','Cot','Derrick','Ethan'], 'Team' : ['a','B','C','d','e'], 'rebounds': [11, 8, 10, 6, 6]}) 迭代列 : for x, y in df.iteritems(): print(x) print(y) 輸出: 7)df.iterrows( ): 有時(shí)我們需要在不使用循環(huán)的情況下迭代 DataFrame 的行和列,在這種情況 df.iterrows( ) 下非常有用。 以(索引、序列)對(duì)的形式迭代數(shù)據(jù)幀行。 例: #create DataFramedf = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'Player': ['Adam','Bob','Cot','Derrick','Ethan'], 'Team' : ['a','B','C','d','e'], 'rebounds': [11, 8, 10, 6, 6]})#Iterating over DataFrame rowsfor i in df.iterrows(): print(i) 輸出: 8)df.itertuples( ): 語(yǔ)法: DataFrame.itertuples(index=True, name='Pandas') Index = True 默認(rèn)情況下為 name = 'Pandas’ 對(duì)于 DataFrame 中的每一行,要在 namedtuples 上迭代的對(duì)象,第一個(gè)字段可能是索引,后面的字段可能是列值。 例: #create DataFramedf = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'Player': ['Adam','Bob','Cot','Derrick','Ethan'], 'Team' : ['a','B','C','d','e'], 'rebounds': [11, 8, 10, 6, 6]})for row in df.itertuples(): print(row) 輸出: 9)df.reset_index( ): Pandas 中用于重置 DataFrame 的索引。reset_index() 將從 0 到數(shù)據(jù)長(zhǎng)度的整數(shù)列表設(shè)置為索引。 例: df = pd.read_csv('customer_data.csv') 將列“Name”設(shè)置為索引: df.set_index(['Name'], inplace = True)df 重置索引: df.reset_index() pandas函數(shù)還有哪些?下期我們繼續(xù)! |
|