pandas的一些函数

1、pd.read_csv ()

读取csv文件

import pandas as pd

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

df = pd.read_csv('Popular_Baby_Names.csv', sep=';', header=0, index_col=0, skiprows=5, na_values='N/A')##读取CSV文件data.csv,使用;作为分隔符,第一行作为标题,第一列作为索引,跳过前5行,将N/ a替换为NaN

2、df.describe ()

df.describe()方法用于生成DataFrame的各种特征的汇总统计信息。它返回一个新的DataFrame,其中包含原始DataFrame中每个数值列的计数、平均值、标准差、最小值、第25百分位、中位数、第75百分位和最大值。

df.describe()

df.describe(include='all')  # include all columns

df.describe(exclude='number') # exclude numerical columns

3、df.info ()

df.info()可以获得DataFrame的简明摘要,包括每列中非空值的数量、每列的数据类型以及DataFrame的内存使用情况。

df.info()

4、df.iloc ()

iloc()函数用于根据索引选择行和列

df.iloc[起始行:最终行, 起始列:最终列]

5、df.loc ()

loc()函数用于根据DataFrame中基于标签的索引选择行和列。它用于根据基于标签的位置选择行和列

df.loc[:, ['Year of Birth', 'Gender']]####选取'Year of Birth', 'Gender'列

6、df.assign ()

.assign()函数用于根据现有列的计算向DataFrame添加新列。它允许您在不修改原始数据的情况下添加新列。该函数会返回一个添加了列的新DataFrame。

df_new = df.assign(count_plus_5=df['Count'] + 5)####df.assign()被用来创建一个名为'count_plus_5'的,值为count列的值 + 5的新列。

7、df.query ()

.query()函数可以根据布尔表达式过滤数据。可以使用类似于SQL的查询字符串从DataFrame中选择行。该函数返回一个新的DataFrame,其中只包含满足布尔表达式的行。

df_query = df.query('Count > 30 and Rank < 20')

df_query = df.query("Gender == 'MALE'")

8、df.sort_values ()

.sort_values()函数可以按一列或多列对数据进行排序。它根据一个或多个列的值按升序或对DataFrame进行排序。该函数返回一个按指定列排序的新DataFrame。

df.sort_values(by='##',axis=0,ascending=True, inplace=False, na_position='last')

by:指定列名(axis=0或’index’)或索引值(axis=1或’columns’)

axis:若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0

ascending:是否按指定列的数组升序排列,默认为True,即升序排列

Inplace是否用排序后的数据集替换原来的数据,默认为False,即不替换

na_position {‘first’,‘last’}设定缺失值的显示位置

9、df.sample ()

.sample()函数可以从数据帧中随机选择行。它返回一个包含随机选择的行的新DataFrame。该函数采用几个参数,可以控制采样过程。

df.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)

n:这是一个可选参数, 由整数值组成, 并定义生成的随机行数。

frac:它也是一个可选参数, 由浮点值组成, 并返回浮点值*数据帧值的长度。不能与参数n一起使用。

replace:由布尔值组成。如果为true, 则返回带有替换的样本。替换的默认值为false。

权重:它也是一个可选参数, 由类似于str或ndarray的参数组成。默认值”无”将导致相等的概率加权。

如果正在通过系列赛;它将与索引上的目标对象对齐。在采样对象中找不到的权重索引值将被忽略, 而在采样对象中没有权重的索引值将被分配零权重。

如果在轴= 0时正在传递DataFrame, 则返回0。它将接受列的名称。

如果权重是系列;然后, 权重必须与被采样轴的长度相同。

如果权重不等于1;它将被标准化为1的总和。

权重列中的缺失值被视为零。

权重栏中不允许无穷大。

random_state:它也是一个可选参数, 由整数或numpy.random.RandomState组成。如果值为int, 则为随机数生成器或numpy RandomState对象设置种子。

axis:它也是由整数或字符串值组成的可选参数。 0或”行”和1或”列”。

10、df.isnull ()

isnull()方法返回一个与原始DataFrame形状相同的DataFrame,通过True或False值,指示原始DataFrame中的每个值是否缺失。缺失的值NaN或None,在结果的DataFrame中将为True,而非缺失的值将为False。

df.isnull()

11、df.fillna ()

fillna()方法用于用指定的值或方法填充DataFrame中的缺失值。默认情况下,它用NaN替换缺失的值,也可以指定一个不同的值来代替

df.fillna(value = None,method = None,axis = None,inplace = False,limit = None,downcast = None)

参数:

values: dict, Series, or DataFrame,用于替换空值的值,该值不能是list,如果指定某列,则会是字典的形式

method:{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None,填充方法(向下填充,还是向上,和replace的用法一致)

axis:{0 or ‘index’, 1 or ‘columns’},填充的方向

inplace:bool, default False,if True means 修改原文件

limit:int, default None,限制填充个数

downcast:dict, default is None

12、df.dropna ()

df.dropna()可以从DataFrame中删除缺失值或空值。它从DataFrame中删除至少缺失一个元素的行或列。可以通过调用df.dropna()删除包含至少一个缺失值的所有行。

df.dropna(axis=0, how='any', thresh=None, subset=["列名1","列名2"], inplace=False)

axis=0或axis='index’删除含有缺失值的行,

axis=1或axis='columns’删除含有缺失值的列,

how='all’时表示删除全是缺失值的行(列)

how='any’时表示删除只要含有缺失值的行(列)

thresh=n表示保留至少含有n个非na数值的行

subset定义要在哪些列中查找缺失值

inplace表示直接在原DataFrame修改

13、df.drop ()

df.drop()可以通过指定的标签从DataFrame中删除行或列。它可以用于删除一个或多个基于标签的行或列。

你可以通过调用df.drop()来删除特定的行,并传递想要删除的行的索引标签,并将axis参数设置为0(默认为0)。

df_drop = df.drop(0)  ###删除DataFrame的第一行。

df_drop = df.drop([0,1]) ####删除DataFrame的第一行和第二行

过传递想要删除的列的标签并将axis参数设置为1来删除列:

df_drop = df.drop(['Count', 'Rank'], axis=1)  ###删除列Count和Rank

14、df.groupby ()

df.groupby()用于根据一个或多个列对DataFrame的行进行分组。并且可以对组执行聚合操作,例如计算每个组中值的平均值、和或计数。

df.groupby()返回一个GroupBy对象,然后可以使用该对象对组执行各种操作,例如计算每个组中值的和、平均值或计数。

grouped = df.groupby('Gender')

print(grouped.mean())    ####打印平均值

print(grouped.sum())     ####打印和

15、df.transpose ()

df.transpose()用于转置DataFrame的行和列,这意味着行变成列,列变成行。

也可以使用df上的T属性来实现。df.T和df.transpose()是一样的。

df_transposed = df.transpose()  ###转换行列

df_transposed = df.T  ###转换行列

16、df.merge()

pandas的merge方法是基于共同列,将两个dataframe连接起来。merge方法的主要参数:how,on

df3 = pd.merge(df1,df2,how='inner',on='alpha')# 基于共同列alpha的内连接

df5 = pd.merge(df1,df2,how='outer',on='alpha')# 基于共同列alpha的外连接

df5 = pd.merge(df1,df2,how='left',on='alpha')# 基于共同列alpha的左连接

df6 = pd.merge(df1,df2,how='right',on='alpha')# 基于共同列alpha的右连接

df7 = pd.merge(df1,df2,on=['alpha','beta'],how='inner')# 基于共同列alpha和beta的内连接

df8 = pd.merge(df1,df2,on=['alpha','beta'],how='right')# 基于共同列alpha和beta的右连接

df9 = pd.merge(df1,df2,how='inner',left_on='beta',right_index=True)# 基于df1的beta列和df2的index连接

设置参数suffixes以修改除连接列外相同列的后缀名。

df9 = pd.merge(df1,df2,how='inner',left_on='beta',right_index=True,suffixes=('_df1','_df2'))# 基于df1的alpha列和df2的index内连接

17、 df.join()

join方法是基于index连接dataframe,merge方法是基于column连接,连接方法有内连接,外连接,左连接和右连接,与merge一致。

df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'], 'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})

df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2'],'B': ['B0', 'B1', 'B2']})

df3 = df1.join(df2,lsuffix='_caller', rsuffix='_other',how='inner') #  lsuffix和rsuffix设置连接的后缀名

df3 = df1.set_index('key').join(df2.set_index('key'),how='inner')  # 基于key列进行连接

18、concat()

concat方法是拼接函数,有行拼接和列拼接,默认是行拼接,拼接方法默认是外拼接(并集),拼接的对象是pandas数据类型。

(1)、series类型的拼接方法

df1 = pd.Series([1.1,2.2,3.3],index=['i1','i2','i3'])

df2 = pd.Series([4.4,5.5,6.6],index=['i2','i3','i4'])

df3 = pd.concat([df1,df2])  # 行拼接

行拼接若有相同的索引,为了区分索引,我们在最外层定义了索引的分组情况。

pd.concat([df1,df2],keys=['fea1','fea2'])  # 对行拼接分组

列拼接

默认以并集的方式拼接:

pd.concat([df1,df2],axis=1)  # 列拼接,默认是并集

以交集的方式拼接:

pd.concat([df1,df2],axis=1,join='inner')   # 列拼接的内连接(交)

对指定的索引拼接:

pd.concat([df1,df2],axis=1,join_axes=[['i1','i2','i3']])   # 指定索引[i1,i2,i3]的列拼接

(2)、 dataframe类型的拼接方法

行拼接

df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'],

'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})

df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2'],

'B': ['B0', 'B1', 'B2']})

df3 = pd.concat([df1,df2])  # 行拼接

 

pd.concat([df1,df2],axis=1)    # 列拼接

19、df.rename ()

df.rename()可以更改DataFrame中一个或多个列或行的名称。可以使用columns参数更改列名,使用index参数更改行名。

df_rename = df.rename(columns={'Count': 'count', 'Rank':'rank'}) ##将Count列名改为count,Rank列名改为rank

df_rename = df.rename(index={0:'first',1:'second',2:'third'})###将第1列列名改为first,第2列改为second,第3列改为third

20、df.to_csv ()

df.to_csv()可以将DataFrame导出到CSV文件。与上面的Read_csv作为对应。调用df.to_csv()将DataFrame导出到CSV文件:

df.to_csv('data.csv')

可以通过传递sep参数来指定CSV文件中使用的分隔符。默认情况下,它被设置为“,”。

df.to_csv('path/to/data.csv', sep='\t')

也可以通过将列名列表传递给columns参数来只保存DataFrame的特定列,通过将布尔掩码传递给索引参数来只保存特定的行。

df.to_csv('path/to/data.csv', columns=['Rank','Count'])

还可以使用index参数指定在导出的CSV文件中包含或不包含dataframe的索引。

df.to_csv('path/to/data.csv', index=False)

使用na_rep参数将导出的CSV文件中缺失的值替换为指定的值。

df.to_csv('path/to/data.csv', na_rep='NULL')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值