Pandas操作CSV文件的读写实现方法

yipeiwu_com5年前Python基础

(1)、导库

import pandas as pd
from pandas import Series

(2)、读取csv文件的两种方式

#读取csv文件的两种方式
f = open('E:/建模/第5周/data/ex1.csv') #方法一
df = pd.read_csv(f)
print(df)
f.close

f = open('E:/建模/第5周/data/ex1.csv') #方法二,必须指定分隔符为',',否则会读取失败
df = pd.read_table(f,sep=',')
print(df)
f.close

(2)、根据需要条件读取csv文件

#根据需要条件读取csv文件
f = open('E:/建模/第5周/data/csv_mindex.csv') 
df = pd.read_csv(f,header=None)   #不需要表头
df = pd.read_csv(f,names=['a','b','c','d','message'])  #添加表头
df = pd.read_csv(f,names=['a','b','c','d','message'],index_col = 'message')  #指定某一列作为行索引
df = pd.read_csv(f,index_col = ['key1','key2'])  #指定多列作为行索引
print(df)
f.close

(3)、利用正则表达式读取不同含有不同分隔符的文件

#利用正则表达式读取不同含有不同分隔符的文件
f = open('E:/建模/第5周/data/ex3.txt') 
df = pd.read_table(f,sep='\s+')
print(df)

(4)、根据需要选择需要读的行

#根据需要选择需要读的行
f = open('E:/建模/第5周/data/ex4.csv') 
df = pd.read_table(f,sep=',',skiprows=[0,2,3]) #跳过不想读的行
print(df)

(5)、处理缺失值

#处理缺失值
f = open('E:/建模/第5周/data/ex5.csv') 
df = pd.read_table(f,sep=',',na_values='world') #如果数据中有'world',也会视为缺失值
print(df)

(6)、逐行读取文件

#逐行读取文件
f = open('E:/建模/第5周/data/ex6.csv') 
df = pd.read_table(f,sep=',',nrows=5) #只读取前面5行
print(df)

(7)、将dataframe数据写入csv文件

#将dataframe数据写入csv文件
f = open('E:/建模/第5周/data/ex5.csv') 
data = pd.read_csv(f)
data.to_csv('E:/建模/第5周/data/out.csv')  #将dataframe输出到csv文件中
data.to_csv('E:/建模/第5周/data/out.csv',na_rep='ok')  #将缺失值补上‘ok'
data.to_csv('E:/建模/第5周/data/out.csv',header=None)  #不设置表头
data.to_csv('E:/建模/第5周/data/out.csv',columns=['a','b'])  #写出指定的列

(8)、将csv文件读取位Series

#将csv文件读取位Series
f = open('E:/建模/第5周/data/tseries.csv') 
series = Series.from_csv(f,parse_dates=True)
print(series)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

如何利用Anaconda配置简单的Python环境

如何利用Anaconda配置简单的Python环境

Python的安装并不难,但是要正确安装它的库以及配置环境变量则有些麻烦。对于刚刚开始想要学习Python的小伙伴来说,用Anaconda这个工具往往是很好的选择,它帮助我们下载了很多p...

python基础教程之Filter使用方法

python Filter Python中的内置函数filter()主要用于过滤序列。 和map类似,filter()也接收一个函数和序列,和map()不同的是,filter()把传入...

python socket网络编程之粘包问题详解

python socket网络编程之粘包问题详解

一,粘包问题详情 1,只有TCP有粘包现象,UDP永远不会粘包 你的程序实际上无权直接操作网卡的,你操作网卡都是通过操作系统给用户程序暴露出来的接口,那每次你的程序要给远程发数据时,...

修改Python的pyxmpp2中的主循环使其提高性能

引子 之前clubot使用的pyxmpp2的默认mainloop也就是一个poll的主循环,但是clubot上线后资源占用非常厉害,使用strace跟踪发现clubot在不停的poll,...

Python实现socket非阻塞通讯功能示例

本文实例讲述了Python实现socket非阻塞通讯功能。分享给大家供大家参考,具体如下: 非阻塞需要多线程编程 服务端 方式1: 使用threading库实现多线程 基本方法和单进程基...