pandas文件读取
我们的数据大部分存在于文件当中,所以pandas会支持负责的IO操作,pandas的API支持众多的文件格式,如CSV,SQL,XLS,JSON,HDF5
例如:
1. CSV
1.1 read_csv
pandas.read_csv(filepath_or_buffer,sep=',')
filepath_or_buffer:文件路径
import os
os.getcwd() #获取当前工作路径
usecols:指定读取的列名,列表形式 (data=pd.read_csv('path', usecols=['col1', 'col2']) )
1.2 to_csv
Dataframe.to_csv(path_or_buf=None, sep=',' , columns=None, header=True, index=True, mode='w', encoding= None)
dt.to_csv('Result.csv') #相对位置,保存在getwcd()获得的路径下
dt.to_csv('C:/Users/think/Desktop/Result.csv') #绝对位置
- path_or_buf : 文件路径
- sep :分隔符
- columns :选择需要的列索引
- header :boolean or list of string, default True, 是否写进索引值
- index:是否写进索引
- mode:'w'(重写), 'a'追加
#read data=pd.read_csv('./wholedata.csv') data.head() #to_csv data.to_csv('./newdata',usecols=['col1','col2'],index=False)
1.3 python批量读取文件并合并文件
import pandas as pd
import os
cwd = os.getcwd() #获取当前路径
read_path = 'path1' #待读取批量csv的文件夹
save_path = 'path2' #待保存的合并后的csv的文件夹
save_name = 'new.csv' #待保存的合并后的csv
os.chdir(read_path) #修改当前工作目录
csv_name_list = os.listdir() # 将该文件夹下的所有文件名存入列表
df = pd.read_csv( csv_name_list[0]) # 读取第一个CSV文件并包含表头,用于后续的csv文件拼接
# 读取第一个CSV文件并保存
df.to_csv( cwd + '/' + save_path + '/' + save_name,encoding="utf_8",index=False)
# 循环遍历列表中各个CSV文件名,并完成文件拼接
for i in range(1,100):
df = pd.read_csv( csv_name_list[i] )
df.to_csv(cwd + '/' + save_path + '/' + save_name ,encoding="utf_8",index=False, header=False, mode='a+')
OS
# 获取文件夹路径下的所有文件名组成的列表
fileList = os.listdir(file_path) # ['test1.txt', 'test2.txt', 'test3.txt']
# 把fileName重命名为newName
os.rename(fileName, newName)
# 把file内容加到base_dir后面
os.path.join(base_dir, file) # /path/files/ --> /path/files/test1.txt
# 删除文件
os.remove(file_path)
# 删除空文件夹
os.rmdir(files_path)
# 删除文件夹
shutil.rmtree(files_path)
# 复制文件
shutil.copy(file_path1, file_path2)