前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【python数据分析】Pandas数据载入

【python数据分析】Pandas数据载入

作者头像
颜颜yan_
发布2023-10-16 16:40:57
2820
发布2023-10-16 16:40:57
举报
在这里插入图片描述
在这里插入图片描述

🙋‍ 哈喽大家好,本次是python数据分析、挖掘与可视化专栏第五期 ⭐本期内容:Pandas数据载入 🏆系列专栏:Python数据分析、挖掘与可视化 👍“总有一段时光悄悄过去然后永远怀念.”


前言

对于数据分析而言,数据大部分来源于外部数据,如常用的CSV文件、Excel文件和数据库文件等。Pandas库将外部数据转换为DataFrame数据格式,处理完成后再存储到相应的外部文件中。 Pandas 常用的导入格式:import pandas as pd


一、数据载入

1.文本文件读取

文本文件是一种由若干行字符构成的计算机文件,它是一种典型的顺序文件。 txt文件:是Windows操作系统上附带的一种文本格式,文件以.txt为后缀。 Pandas中使用read_table来读取文本文件:

代码语言:javascript
复制
    pandas.read_table(filepath_or_buffer, sep=’\t’, header=’infer’, names=None, index_col=None, dtype=None, engine=None, nrows=None) 

CSV文件:是Comma-Separated Values的缩写,用半角逗号(’,’)作为字段值的分隔符。 Pandas中使用read_csv函数来读取CSV文件:

代码语言:javascript
复制
    pandas.read_csv(filepath_or_buffer, sep=’,’, header=’infer’, names=None, index_col=None, dtype=None, engine=None, nrows=None) 

2. read_table和read_csv常用参数及其说明

参数名称

说明

filepath

接收string,代表文件路径,无默认

sep

接收string,代表分隔符。read_csv默认为“,”,read_table默认为制表符“\t”,如果分隔符指定错误,在读取数据的时候,每一行数据将连成一片

header

接收int或sequence,表示将某行数据作为列名,默认为infer,表示自动识别

names

接收array,表示列名,默认为None

index_col

接收int、sequence或False,表示索引列的位置,取值为sequence则代表多重索引,默认为None

dtypel

接收dict,代表写入的数据类型(列名为key,数据格式为values),默认为None

engine

接收c或者python,代表数据解析引擎,默认为c

nrows

接收int,表示读取前n行,默认为None

3.使用read _csv 函数读取CSV文件。。

代码如下(示例):

代码语言:javascript
复制
dfl = pd. read_ _csv (‘文件路径文件名’)。
#读取CSV文件到DataFrame中.
df2= pd. read_ _able (‘文件路径文件名’, sep=',')。
#使用read_ table,并指定分隔符
df3= pd. read _csv (‘文件路径文件名’,names=['a','b,--]) 。
#文件不包含表头行,允许自动分配默认列名,也可以指定列名。

name:表示数据读进来之后的数据列的列名

4.文本文件的存储

文本文件的存储和读取类似,结构化数据可以通过pandas中的to_csv函数实现以CSV文件格式存储文件。

代码语言:javascript
复制
DataFrame.to_csv(path_or_buf = None, sep = ’,’, na_rep, columns=None, header=True, index=True, index_label=None, mode=’w’, encoding=None) 

5.Excel文件的读取

Pandas提供了read_excel函数读取“xls”和“xlsx”两种excel文件,其格式为:

代码语言:javascript
复制
pandas.read_excel(io, sheetname, header=0, index_col=None, names=None, dtype)

read_excel函数和read_table函数的部分参数相同。

6. Pandas读写Excel文件

参数名称

说明

io

接收string,表示文件路径,无默认

sheetname

接收string、int,代表excel表内数据的分表位置,默认为0

header

接收int或sequence,表示将某行数据作为列名,默认为infer,表示自动识别

names

接收int、sequence或者False,表示索引列的位置,取值为sequence则代表多重索引,默认为None

index_col

接收int、sequence或False,表示索引列的位置,取值为sequence则代表多重索引,默认为None

dtypel

接收dict,代表写入的数据类型(列名为key,数据格式为values),默认为None


7.读取excel文件

代码语言:javascript
复制
xIsx = pd.excelFile('example/ex1 .xlsx')
pd.read_excel(xlsx, 'Sheetl')
#也可以直接利用:
frame= pd.read_ _excel('example/ex1.xlsx', 'Sheet1')

8.Excel文件的存储

将文件存储为Excel文件,可使用to_excel方法。其语法格式如下:

代码语言:javascript
复制
DataFrame.to_excel(excel_writer=None, sheetname=None’, na_rep=”, header=True, index=True, index_label=None, mode=’w’, encoding=None)

与 to_csv方法的常用参数基本一致,区别之处在于指定存储文件的文件路径参数excel_writer,增加了一个sheetnames参数,用来指定存储的Excel sheet的名称,默认为sheet1。

二、合并数据

在实际的数据分析中,对同一分析对象,可能有不同的数据来源,因此,需要对数据进行合并处理。

1.merge数据合并

· merge·函数是通过一个或多个键将两个DataFrame按行合并起来,Pandas中的数据合并merge( )函数格式如下:

代码语言:javascript
复制
merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
1.1. merge方法主要参数及说明

参数

使用说明

left

参与合并的左侧DataFrame

right

参与合并的右侧DataFrame

how

连接方法:inner,left,right,outer(交、左、右、并)

on

用于连接的列名(默认为相同的列名)

left_on

左侧DataFrame中用于连接键的列

right_on

右侧DataFrame中用于连接键的列

left_index

左侧DataFrame中行索引作为连接键

right_index

右侧DataFrame中行索引作为连接键

sort

合并后会对数据排序,默认为True

suffixes

修改重复名

1.2. merge的默认合并数据
代码语言:javascript
复制
price = pd.DataFrame( {'fruit':['apple','grape','orange','orange'],'price':[8,7,9,11]})
amount = pd.DataFrame( {'fruit':['aple','grape','orange'],'amout':[5,11,8]})
display(price,amount,pd.merge(price,amount))
在这里插入图片描述
在这里插入图片描述

两个DataFrame都有fruit列,所以默认按照该列进行合并,默认how=‘inner’,即pd.merge(amount,price,on=‘fruit’ ,how=‘inner’)如果两个DataFrame的列名不相同,可以单独指定。

1.3指定合并时的列名
代码语言:javascript
复制
display(pd.merge(price,amount,left_on = 'fruit',right_on = 'fruit'))
在这里插入图片描述
在这里插入图片描述

merge合并时默认是内连接(inner),即返回交集。通过how参数可以选择连接方法:左连接(left),右连接(right)和外连接(outer)。

1.4.merge合并方式、inner内连接、返回交集
### 1.5.merge通
### 1.5.merge通

过多个键合并

代码语言:javascript
复制
left = pd.DataFrame({'key1':['one','one','two'],'key2':['a','b','a'],'value1':range(3)})
right = pd.DataFrame({'key1':['one','one','two','two'],'key2':['a','a','a','b'],'value2':range(4)})
display(left,right,pd.merge(left,right,on = ['key1','key2'],how = 'left'))
在这里插入图片描述
在这里插入图片描述

在合并时会出现重复列名,虽然可以人为进行重复列名的修改,但merge函数提供了suffixes用于处理该问题。

代码语言:javascript
复制
print(pd.merge(left,right,on = 'key1’))
print(pd.merge(left,right,on = 'key1',suffixes = ('_left','_right')))
在这里插入图片描述
在这里插入图片描述

2. concat数据连接

如果要合并的DataFrame之间没有连接键,就无法使用merge方法。 pandas中的concat方法可以实现,默认情况下会按行的方向堆叠数据。如果在列向上连接设置axies = 1即可。

2.1.两个Series 的数据连接
代码语言:javascript
复制
s1 = pd.Series([0,1],index = ['a','b'])
s2 = pd.Series([2,3,4],index = ['a','d','e'])
s3 = pd.Series([5,6],index = ['f','g'])
print(pd.concat([s1,s2,s3]))
在这里插入图片描述
在这里插入图片描述
2.2两个DataFrame的数据
代码语言:javascript
复制
datal = pd.DataFrame(np.arange(6).reshape(2,3),columns = lit('abc'))
data2 = pd.DataFrame(np.arange(20,26).reshape(2,3),columns = list('ayz'))
data = pd.concat([data1,data2],axis = 0)
display(datal ,data2,data)

在这里插入图片描述

可以看出,contact连接方式默认为outer外连接通过join参数, 可以指定连接方式:inner or outer直接contact之后,index只是重复; 使用data = data.reset_index(drop=True)来改变index,修改为默认序列

2.3指定索引顺序
代码语言:javascript
复制
s1 = pd.Series([0,1],index = ['a','b'])
s2 = pd.Series([2,3,4],index = ['a','d','e'])
s3 = pd.Series([5,6],index = ['f','g'])
s4 = pd.concat([s1*5,s3],sort=False)
s5 = pd.concat([s1 ,s4],axis =1,sort=False)
s6 = pd.concat([s1 ,s4],axis =1,join = 'inner',sort=False)
display(s4,s5,s6)
在这里插入图片描述
在这里插入图片描述

3.combine_first合并数据

在处理数据的过程中,当一个DataFrame对象中出现了缺失数据,而对于这些缺失数据,我们希望可以使用其他DataFrame对象中的数据填充,此时需要使用combine_first方法。

combine_first()方法的语法格式: combine_first(other) 上述方法中只有一个参数other,该参数用于接收填充缺失值的DataFrame对象。

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、数据载入
    • 1.文本文件读取
      • 2. read_table和read_csv常用参数及其说明
        • 3.使用read _csv 函数读取CSV文件。。
          • 4.文本文件的存储
            • 5.Excel文件的读取
              • 6. Pandas读写Excel文件
                • 7.读取excel文件
                  • 8.Excel文件的存储
                  • 二、合并数据
                    • 1.merge数据合并
                      • 1.1. merge方法主要参数及说明
                      • 1.2. merge的默认合并数据
                      • 1.3指定合并时的列名
                      • 1.4.merge合并方式、inner内连接、返回交集
                    • 2. concat数据连接
                      • 2.1.两个Series 的数据连接
                      • 2.2两个DataFrame的数据
                      • 2.3指定索引顺序
                    • 3.combine_first合并数据
                    相关产品与服务
                    文件存储
                    文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档