温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Pandas函数有哪些

发布时间:2021-11-04 16:12:38 来源:亿速云 阅读:131 作者:iii 栏目:web开发

本篇内容介绍了“Pandas函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.安装

如果想自己运行这些示例,请从Kaggle下载Anime推荐数据集,将其解压缩并放入与jupyter notebook相同的文件夹中。

接下来运行这些指令,应该能重复得出以下任一函数的结果。

import pandas as pd import numpy as npanime =pd.read_csv('anime-recommendations-database/anime.csv') rating = pd.read_csv('anime-recommendations-database/rating.csv')anime_modified= anime.set_index('name')

2.输入

输入CSV(逗号分隔值)

将CSV直接转换为数据框。有时CSV载入数据还需要指定一种编码(即:encoding='ISO-8859–1')。如果数据框包含不可读的字符,应首先尝试上述方法。

对于表格文件,存在一个叫做pd.read_excel的类似函数。

anime =pd.read_csv('anime-recommendations-database/anime.csv')

Pandas函数有哪些

根据输入数据构建数据框

这在手动示例化简单数据时十分有用,方便查看这些数据运行时如何变化。

df = pd.DataFrame([[1,'Bob','Builder'],                   [2,'Sally', 'Baker'],                   [3,'Scott', 'CandleStick Maker']], columns=['id','name', 'occupation'])

Pandas函数有哪些

df.head()

复制数据框

想保留原始副本同时对数据框进行更改,复制数据框很有用。在输入数据框后立即对其进行复制是很好的做法。

anime_copy =anime.copy(deep=True)
Pandas函数有哪些

3.查看和检验

获取顶部或底部的n项记录

显示数据框中的前n项记录。笔者通常在notebook中的某个位置打印数据框的顶部记录,以便在忘记其中的内容时可以返回来参考。

anime.head(3) rating.tail(1)
Pandas函数有哪些
Pandas函数有哪些

计算行数

这本身不是pandas函数,而是len()函数对行进行计数,并将其保存到变量中,在其他地方使用。

len(df) #=> 3

计算唯一行

计算一列中的唯一值。

len(ratings['user_id'].unique())

获取数据框信息

对于获取一些常规信息(如标题、值的数量和按列的数据类型)很有用。df.dtypes是一个类似但实用性低的函数,仅提供列数据类型。

anime.info()
Pandas函数有哪些

获取统计数据

如果数据框具有很多数值,获取统计数据非常有用。了解评级列的平均值,最小值和最大值,可以大致了解数据框。

anime.describe()
Pandas函数有哪些

获取值总和

获取特定列的值总和。

anime.type.value_counts()
Pandas函数有哪些

4.输出

保存为CSV格式

这将转储到与notebook相同的目录。笔者只保存下面的前10行,但读者不需要这样做。同样,也可使用df.to_excel()  函数,将表格文件保存为CSV格式。

rating[:10].to_csv('saved_ratings.csv',index=False)

5.选取

获取列的值清单或一系列值。

需要将列中的值放入X和y变量中以适应机器学习模型时,此方法有效。

anime['genre'].tolist() anime['genre']
Pandas函数有哪些
anime[‘genre’].tolist()
Pandas函数有哪些
anime[‘genre’]

获取索引值列表

通过索引创建数值列表。请注意,这里使用了anime_modified数据框,因为索引值更加有趣。

anime_modified.index.tolist()

Pandas函数有哪些

获取列值列表

anime.columns.tolist()

Pandas函数有哪些

6.添加/删除

用设置值附加新列

偶尔,当测试集和训练集在两个单独的数据框中,并想在组合它们之前分别标记出行与集的对应关系时,笔者会这样做。

anime['train set'] = True

从一部分列中创建新的数据框

此方法用于只想保留巨型数据框中的几列并且不想指定删除列时。

anime[['name','episodes']]
Pandas函数有哪些

删除指定列

删除指定列用于仅需删除几列时。否则,写出全部内容可能会很乏味,笔者更喜欢前者,删除指定列。

anime.drop(['anime_id', 'genre','members'], axis=1).head()
Pandas函数有哪些

添加其他行总和的一行

因其更易于查看,故在此处手动创建一个小型数据框。这里的有趣之处在于,df.sum(axis=0)将值添加到各行或各列中。

计算总和或平均值时,采用同样的逻辑,如:

df.mean(axis=0). f = pd.DataFrame([[1,'Bob',8000],                  [2,'Sally', 9000],                  [3,'Scott', 20]],columns=['id','name', 'power level'])df.append(df.sum(axis=0),ignore_index=True)
Pandas函数有哪些

7.合并

串联两个数据框

用于同行有两个数据框,并想将其组合的情况。这里将数据框分成两部分,然后重新将它们添加在一起。

df1 = anime[0:2]df2 =anime[2:4]pd.concat([df1, df2], ignore_index=True)
Pandas函数有哪些
Pandas函数有哪些
Pandas函数有哪些

合并数据框

想将两个数据框合并在一列时,合并数据框就如同SQL(结构化查询语言)的左联接用法。

rating.merge(anime,left_on=’anime_id’, right_on=’anime_id’, suffixes=(‘_left’, ‘_right’))
Pandas函数有哪些

8.筛选

检索匹配索引值的行

anime_modified中的索引值是动漫的名称。请注意,如何使用这些名称来获取特定列。

anime_modified.loc[['Haikyuu!!Second Season','Gintama']]
Pandas函数有哪些

通过编号索引值来检索行

与上面的函数不同,使用 iloc,第一行的索引值为0,第二行的索引值为1,以此类推……即便在修改数据框后,在索引列中使用字符串值。

使用此函数,当你想获得数据框中的前3行。

anime_modified.iloc[0:3]
Pandas函数有哪些

获取行

在给定列表的列值中检索行。匹配单个值时,anime[anime[‘type’] == 'TV']也适用。

anime[anime['type'].isin(['TV','Movie'])]
Pandas函数有哪些

拆分数据框

这就像拆分表格一样。拆分数据框,来获取在特定索引前/中/后的所有行。

anime[1:3]
Pandas函数有哪些

通过值筛选

筛选符合条件的行的数据框。但注意,这将维持现有的索引值。

anime[anime['rating'] > 8]
Pandas函数有哪些

9.排序

排序函数sort_values

按列中的值对数据框进行排序。

anime.sort_values('rating',ascending=False)
Pandas函数有哪些

10.汇总

分组和计数

计算列中每个不同值的记录数。

anime.groupby('type').count()
Pandas函数有哪些

以不同方式对列进行分组和汇总

注意,笔者添加了 reset_index() 函数,否则,下文的“type”列将成为索引列——笔者建议在多数情况下这样做。

anime.groupby(["type"]).agg({   "rating": "sum",   "episodes":"count",   "name": "last" }).reset_index()

创建数据透视表

数据透视表是比较适合从数据框中提取数据子集的工具。

需注意,笔者已对数据框进行了大量筛选,因此可以更快地构建数据透视表。

tmp_df = rating.copy() tmp_df.sort_values('user_id', ascending=True, inplace=True) tmp_df = tmp_df[tmp_df.user_id < 10] tmp_df = tmp_df[tmp_df.anime_id < 30] tmp_df = tmp_df[tmp_df.rating != -1]pd.pivot_table(tmp_df, values='rating',index=['user_id'], columns=['anime_id'], aggfunc=np.sum, fill_value=0)
Pandas函数有哪些

11.整理

设置非数(NaN)单元格为某个值

设置非数值单元格为0。示例中,笔者像之前一样创建了相同的数据透视表,但不使用fill_value=0,而是使用 fillna(0)进行填充。

pivot = pd.pivot_table(tmp_df, values='rating',index=['user_id'], columns=['anime_id'], aggfunc=np.sum)pivot.fillna(0)
Pandas函数有哪些
Pandas函数有哪些

12.其他

采样数据框

笔者一直从较大的数据框中提取少量样本。如果frac = 1,则可以在保留索引的情况下随机重新排行。

anime.sample(frac=0.25)
Pandas函数有哪些

迭代行索引

在数据框中迭代索引和行。

for idx,row inanime[:2].iterrows():     print(idx, row)
Pandas函数有哪些

启动jupyter notebook

以高数据速率限制启动jupyter notebook程序。

jupyter notebook &mdash;NotebookApp.iopub_data_rate_limit=1.0e10

“Pandas函数有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI