前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python pandas十分钟教程

Python pandas十分钟教程

作者头像
深度学习与Python
发布2019-06-18 20:53:33
9.7K0
发布2019-06-18 20:53:33
举报

Pandas是数据处理和数据分析中最流行的Python库。本文将为大家介绍一些有用的Pandas信息,介绍如何使用Pandas的不同函数进行数据探索和操作。 包括如何导入数据集以及浏览,选择,清理,索引,合并和导出数据等常用操作的函数使用,这是一个很好的快速入门指南,如果你已经学习过pandas,那么这将是一个不错的复习。

pandas导入与设置

一般在使用pandas时,我们先导入pandas库。

代码语言:javascript
复制
import pandas as pd

pandas在默认情况下,如果数据集中有很多列,则并非所有列都会显示在输出显示中。 您可以使用以下代码行来设置输出显示中的列数:

代码语言:javascript
复制
pd.set_option('display.max_columns', 500)

500表示列的最大宽度。 也就是说,500意味着在调用数据帧时最多可以显示500列。 默认值仅为50。此外,如果想要扩展输显示的行数。 可以通过如下代码进行设置:

代码语言:javascript
复制
pd.set_option('display.max_rows', 500)

读取数据集

导入数据是开始的第一步,使用pandas可以很方便的读取excel数据或者csv数据,使用代码如下:

代码语言:javascript
复制
pd.read_csv("Soils.csv")
pd.read_excel("Soils.xlsx")

在括号内 "Soils.csv"是上传的数据文件名,一般如果数据文件不在当前工作路径,则需要加上路径信息。如果读取的文件没有列名,需要在程序中设置header,举例如下:

代码语言:javascript
复制
pd.read_csv("Soils.csv",header=None)

如果碰巧数据集中有日期时间类型的列,那么就需要在括号内设置参数parse_dates = [column_name],以便Pandas可以将该列识别为日期。 例如,如果数据集中有一个名为Collection_Date的日期列,则读取代码如下:

代码语言:javascript
复制
pd.read_excel("Soils.xls", parse_dates = ['Collection_Date'])

以下是成功导入后的数据预览。

探索DataFrame

以下是查看数据信息的5个最常用的函数:

df.head():默认返回数据集的前5行,可以在括号中更改返回的行数。 示例: df.head(10)将返回10行。

df.tail():返回数据集的最后5行。同样可以在括号中更改返回的行数。

df.shape: 返回表示维度的元组。 例如输出(48,14)表示48行14列。

df.info():提供数据摘要,包括索引数据类型,列数据类型,非空值和内存使用情况。

df.describe():提供描述性统计数据。

统计某列数据信息

以下是一些用来查看数据某一列信息的几个函数:

df['Contour'].value_counts() : 返回计算列中每个值出现次数。

df['Contour'].isnull().sum():返回'Contour'列中的空值计数

df['pH'].notnull().sum():返回“pH”列中非空值的计数

df['Depth'].unique():返回'Depth'列中的唯一值

df.columns:返回所有列的名称

选择数据

列选择:如果只想选择一列,可以使用df['Group']. 这里'Group'是列名。

要选择多个列,可以使用df[['Group', 'Contour', 'Depth']]。

子集选择/索引:如果要选择特定的子集,我们可以使用.loc或.iloc方法。 基本使用方法如下:

df.loc[:,['Contour']]:选择'Contour'列的所有数据。 其中单冒号:选择所有行。 在逗号的左侧,您可以指定所需的行,并在逗号的右侧指定列。

df.loc[0:4,['Contour']]:选择“Contour”列的0到4行。

df.iloc[:,2]:选择第二列的所有数据。

df.iloc[3,:]:选择第三行的所有数据。

数据清洗

数据清洗是数据处理一个绕不过去的坎,通常我们收集到的数据都是不完整的,缺失值、异常值等等都是需要我们处理的,Pandas中给我们提供了多个数据清洗的函数。

数值替换

代码语言:javascript
复制
df.replace({'Topk': 'Top'}, inplace=True)
删除空值
代码语言:javascript
复制
df['pH'].dropna(inplace=True)
输入空值
代码语言:javascript
复制
df['pH'].fillna(df['pH'].mean(), inplace=True) #nulls are imputed with mean of pH column
删除行和列
代码语言:javascript
复制
df.drop(columns = ['Na'], inplace = True) #This drops the 'Na' column
df.drop(2, axis=0, inplace=True) #This drops the row at index 2

值得注意的是,axis = 0表示删除行。 您可以使用axis = 1来删除列。

更改列名称
代码语言:javascript
复制
df.rename(columns = {'Conduc' : 'Cond', 'Dens' : 'Density'}, inplace = True)
数据处理

您可以使用.apply在数据.apply的行或列中应用函数。 下面的代码将平方根应用于“Cond”列中的所有值。

代码语言:javascript
复制
df['Cond'].apply(np.sqrt)

数据分组

有时我们需要将数据分组来更好地观察数据间的差异。Pandas中提供以下几种方式对数据进行分组。 下面的示例按“Contour”列对数据进行分组,并计算“Ca”列中记录的平均值,总和或计数。

代码语言:javascript
复制
df.groupby(by=['Contour'])['Ca'].mean()
df.groupby(by=['Contour'])['Ca'].count()
df.groupby(by=['Contour'])['Ca'].sum()

也可以按多列进行数据分组。

代码语言:javascript
复制
df.groupby(by=['Contour', 'Gp'])['Ca'].mean()

合并多个DataFrame

将两个数据合并在一起有两种方法,即concat和merge。Concat适用于堆叠多个数据帧的行。

按列连接数据

代码语言:javascript
复制
pd.concat([df, df2], axis=1)

按行连接数据

代码语言:javascript
复制
pd.concat([df, df2], axis=0)

当您的数据帧之间有公共列时,合并适用于组合数据帧。

合并数据

代码语言:javascript
复制
pd.merge(df, df2, left_on='Contour', right_on='Contour', how='outer')

数据保存

在完成数据清洗后,就需要将数据输出到csv或excel文件中保存。如果要将数据输出到由制表符分隔的csv文件,请使用以下代码。 '\t'表示您希望它以制表符分隔。

代码语言:javascript
复制
df.to_csv('myDataFrame.csv', sep='\t')

输出到excel:

代码语言:javascript
复制
writer = pd.ExcelWriter('myDataFrame.xlsx') 
df.to_excel(writer,'DataFrame') 
writer.save()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习与python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 列选择:如果只想选择一列,可以使用df['Group']. 这里'Group'是列名。
  • 子集选择/索引:如果要选择特定的子集,我们可以使用.loc或.iloc方法。 基本使用方法如下:
  • 删除空值
  • 输入空值
  • 删除行和列
  • 更改列名称
  • 数据处理
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档