分享

九道门丨pandas的18个重要函数,你会用哪些?(上)

 禁忌石 2022-05-10 发布于浙江省

数据处理是数据分析的重要组成部分,包括了各种任务,如清理、重组、合并、删除重复项、删除 Null 或 NaN 值等。Pandas 提供了大量的函数集来执行各种数据预处理任务。

Pandas 提供了两种类型的数据结构来处理数据,包括 Series 和 DataFrame。在这篇文章中,我整理了 18 个我在数据预处理任务中最常用的函数。

1)DataFrame.select_dtypes( ):

基于列 dtypes 返回 DataFrame 列的子集。

当你想只选择具有特定数据类型的列或具有特定数据类型的值时,例如:“object”,“int64”,np.number 等。

语法:

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

2)DataFrame.drop_duplicates( ):

从 DataFrame 中删除重复的行,通常用于数据清理任务。在数据集中保留重复值会影响分析结果,因此数据清理对于避免误判非常重要。

语法:

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)

参数:

  1. subset:仅考虑用于标识重复项的特定列,默认情况下使用所有列。

  2. keep:可以被认为是 {'first', 'last',False},默认情况下会被认为是 False。此参数用于决定应考虑哪些重复项。如果要保留第一个出现的值,则 keep='first'或'last',默认情况下,如果保留所有重复项,则为 False。

  3. inplace:它决定是处理 DataFrame 中的更改还是返回副本。表示在当前 DataFrame 中进行更改,并返回副本并保持当前 DataFrame 不变。.inplace = True inplace = FalseBy default false

  4. ignore_index: 如果为 True,则生成的轴将标记为 0,1, ...,n-1。默认情况下 ignore_index = False。

例:

#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

3)DataFrame.str.lower( ):

将 Series/Index 中的字符串转换为小写。同样,对于大写,我们可以使用 DataFrame.str.upper()

语法:

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

4)Series.str.match() :

Series.str.match() 函数用于确定给定序列对象中的数据是否与正则表达式匹配。

语法:

Series.str.match(pat, case=True, flags=0, na=None)

参数:

  1. pat:字符序列或正则表达式。

  2. case:如果为 True,则区分大小写。默认情况下为 True。

  3. flags:int,默认值为 0。

  4. na:填充缺失值的值。默认值取决于数组的数据类型。对于对象 dtype,使用 numpy.nan。

例:

city = pd.Series(['Kolkata','Delhi','Mumbai', 'Sikkim','Bangalore'])index = ['City_1','City_2','City_3','City_4','City_5']city.index = indexcity
文章图片5
res = city.str.match(pat = '(Ranchi)|(Mumbai)')res
文章图片6
res = city.str.match(pat = '([A-Z]a.)')res
文章图片7

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
文章图片8
pd.set_option('display.max_rows', 5)df
文章图片9
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
文章图片10
#formatting upto 2 decimal placespd.set_option('display.float_format', lambda x: '%0.2f' % x)df

输出:

文章图片11

6)df.iteritems( ):

用于迭代(列名、系列)。循环访问 DataFrame 列,返回一个元组,其中列名和内容是一个序列。该方法生成 DataFrame 的迭代器对象,允许我们迭代 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)

输出:

文章图片12

7)df.iterrows( ):

有时我们需要在不使用循环的情况下迭代 DataFrame 的行和列,在这种情况 df.iterrows( ) 下非常有用。

以(索引、序列)对的形式迭代数据帧行。

例:

#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)

输出:

文章图片13

8)df.itertuples( ):

语法:

DataFrame.itertuples(index=True, name='Pandas')

Index = True 默认情况下为 name = 'Pandas’

对于 DataFrame 中的每一行,要在 namedtuples 上迭代的对象,第一个字段可能是索引,后面的字段可能是列值。

例:

#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)

输出:

文章图片14

9)df.reset_index( ):

Pandas 中用于重置 DataFrame 的索引。reset_index() 将从 0 到数据长度的整数列表设置为索引。

例:

df = pd.read_csv('customer_data.csv')

将列“Name”设置为索引:

df.set_index(['Name'], inplace = True)df
文章图片15

重置索引:

df.reset_index()
文章图片16

pandas函数还有哪些?下期我们继续!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多