欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

程序员文章站 2022-06-05 20:22:24
...

本文测试使用Pandas使用的是Spyder,python3.6版本,已经安装好pandas包。测试数据已放云盘:链接:https://pan.baidu.com/s/1zozpY2BUTIvEJKf238leZg 密码:44zg。如需按照numpy,可以百度搜索如何安装。

1数据导入

1.1csv数据导入方式:

#导包
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\1.csv",encoding='UTF-8')

数据读入前后比对:

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

1.2导入文本文件:

使用read_table函数导入普通文本文件,其中read_able函数语法为:read_table(file,names=[列名1,列名2,…],sep=”“,encoding,..),其中

file: 文本路径

names:列名,默认为文件中的第一行作为列名

sep:分隔符,默认为空,表示默认导入为一列

encoding:设置文件编码,在导入中文的时候需要设置为UTF-8

读取代码:

#导包
from pandas import read_table

df=read_table(r"C:\Users\JackPi\Desktop\pandas\data\2.txt",names=['age','name'],sep=',',encoding='UTF-8')

读入数据前后对比:

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

1.3导入Excel文件:

使用read_excel函数导入Excel文件,read_excel函数的语法:read_excel(fileName,sheet_name,names),其中:

fileName:文件路径

sheet_name:Sheet的名字

names:列名,默认为文件中的第一行作为列名

读取代码:

#导包
from pandas import read_excel

df=read_excel(r"C:\Users\JackPi\Desktop\pandas\data\3.xlsx",sheet_name='data')

读取前后数据对比:

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

2数据导出

导出为csv文件

使用to_csv函数,语法:to_csv(filePath,sep=”,”,index=TRUE,header=TRUE),其中:

filePath:导出文件的路径

sep:分隔符,默认为逗号(“,”),也就是以逗号分割列

index:是否导出序号,默认为TRUE,也就是导出行序号

header:是否导出列名,默认为TRUE,也就是导出列名

写出代码:

#导包
from pandas import DataFrame

#定义一些数据
df=DataFrame({
        'age':[18,19,20],
        'name':['test1','test2','test3']

        })
#数据导出
df.to_csv(r"C:\Users\JackPi\Desktop\pandas\data\df_out.csv",index=False)

导出结果:

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

3重复值处理

把数据结构中,行相同的数据只保留一行。函数语法:drop_duplicates()

#导包
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data.csv")

newDf=df.drop_duplicates()

4缺失数据的处理

缺失数据造成的原因:有些洗洗暂时无法获取,有些信息被遗漏或者错误处理了;处理方式:数据补齐,删除对应缺失行,不处理。

删除缺失数据所在行:dropna()函数(去除数据结构中值为空的数据)

#导包
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data1.csv")

newDf=df.dropna()

5字段抽取

是根据已知数据的开始和结束位置,抽取出新的列,字段截取函数:slice(start,stop),其中:

start:开始位置

stop:结束位置

例如截取电话号码数据:

#导包
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data2.csv")
#格式转换为字符串类型
df['tel']=df['tel'].astype(str)

#运营商
company=df['tel'].str.slice(0,3)
#运营商
area=df['tel'].str.slice(3,7)
#号码段
nums=df['tel'].str.slice(7,11)

6字段拆分

按照固定的字符,拆分已有字符串。所使用的字符分割函数:split(step,n,expand=False),其中:

sep:用于分割的字符串

n:分割为多少列

expand:是否展开为数据框,默认为False,如果expand为True,则返回DataFrame,如果expand为False,则返回Series。

#导包
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data3.csv")
#先转为str类型,再用空格隔开,切割1列,也就是分割成2列
newDf=df['name'].str.split(' ',1,True)
#为分割后的数据设置列名
newDf.columns=['band','name']

分割前后数据比较:

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

pandas 中DataFrame使用:数据导入\出,重复值处理,缺失数据处理,字段抽取,字段拆分

相关标签: pandas dataframe