2020-8-23 读取csv Python

读取csv

pd.read_csv( ) 默认 逗号为分隔符,默认 首行作为 columnsName

pd.read_csv(‘data/ex1.csv’)

pd.read_table() 也可以读取,但是要指定 分隔符参数 sep=’’

pd.read_table(‘data/ex1.csv’,sep=’,’)

pd.read_csv( ) 默认 逗号为分隔符,默认 首行作为 columnsName

pd.read_csv(‘data/ex1.csv’)

自定义列名称 ,参数 names=[ ]

names 给几列,就会从最后向前读几列数据,剩下的都是 index

超出列就是 nan

df3 = pd.read_csv(‘data/ex2.csv’,names=[‘aa’,‘bb’,‘cc’,‘dd’,‘message’,‘ee’])
df3

设置 行索引 index_col = ‘某个列name’

df4 = pd.read_csv(‘data/ex2.csv’,
names=[‘aa’,‘bb’,‘cc’,‘dd’,‘message’],
index_col=‘message’
)
df4

多列作为行索引

df5 = pd.read_csv(‘data/csv_mindex.csv’,
index_col = [‘key1’,‘key2’]
)
df5

多列作为行索引

df5 = pd.read_csv(‘data/csv_mindex.csv’,
index_col = [‘key1’,‘key2’]
)
df5

读取 使用不规则的分隔符的 数据 ,使用 sep= ‘’

使用正则表达式作为分隔符 ,不需要导入 re 。直接写正则字符串

\s+

df6 = pd.read_csv(‘data/ex3.txt’,sep=’\s+’)
df6

使用 skiprows = [] 跳过一些行

df7 = pd.read_csv(‘data/ex4.csv’,skiprows=[0,2,3])
df7

comment=’#’ 指定 # 开头的是注释,不用读取

pd 需要读取xxx值为nan,参数 na_values=[] .空值 与 NA 字符默认是nan了
df8 = pd.read_csv(‘data/ex5.csv’,na_values=[1,2,‘two’])
df8

指定不同列的不同数据为 nan

用字典匹配 ,某个列的一个值或多个值

nans = {‘something’:‘two’ ,‘message’:[‘foo’,‘world’]}
df9 = pd.read_csv(‘data/ex5.csv’ ,na_values=nans)
df9

模拟创建一个成绩表,语文,数学,英语。各科成绩有重复。

names = ‘尺,寸,人,下,匕,卜,之,田,丫,乃,贝,井,工,几,女,巨,爪,火,了,方,木,中,寸,石,户,友,夫,不,可,主,又,丑,巾,口,电,门,术,儿,羊,丁,心,天,化,气,正,页,兄,伏,大,计’.split(’,’)
df10 = DataFrame(
{
‘语文’:np.random.randint(90,100,50),
‘数学’:np.random.randint(80,100,50),
‘英语’:np.random.randint(60,100,50),
‘化学’:np.random.randint(60,100,50),
‘物理’:np.random.randint(60,100,50),
‘生物’:np.random.randint(60,100,50),
‘政治’:np.random.randint(60,100,50),
‘历史’:np.random.randint(60,100,50),
‘地理’:np.random.randint(60,100,50),

},
index = [np.random.choice(list('赵钱孙李周吴郑王'))+names.pop(np.random.randint(0,len(names))) for i in range(50)]


)
df10

保存 , 默认行列索引都存进去了

df10.to_csv(‘成绩.csv’,encoding=‘utf-8’)

header = False ,不要列索引

header = False ,不要列索引

df10.to_csv(‘成绩2.csv’ ,header=False)

na_rep = ‘xx’ 将 nan 换成xx进行存储,默认是 空

先改个值为 nan

df10.iloc[0,3] = NA
df10.to_csv(‘成绩3.csv’,na_rep=‘空’)

预览存储效果 sys.stdout

import sys

以竖线为分隔符的预览效果

df10.to_csv(sys.stdout,sep=’|’,na_rep=‘空空如也’)

读取我们自己存储的 成绩.csv ,人名作为行索引

data = pd.read_csv(‘成绩.csv’,index_col=‘Unnamed: 0’)
data
import openpyxl

存储 。前提需要 安装 openpyxl

data.to_excel(‘成绩1.xlsx’)
data.to_excel(‘成绩1.xlsx’,startrow=1 ,encoding=‘utf-8’)

读取excel ,参数同 读取 csv ,多了个 sheet_name 。

需要 xlrd 模块

pd.read_excel(‘成绩1.xlsx’)

读取excel ,参数同 读取 csv ,多了个 sheet_name 。

需要 xlrd 模块

pd.read_excel(‘成绩1.xlsx’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值