Python将Excel变为CSV

Excel在实际的数据处理中,使用的不多,但是在数据分析中,却常常作为一个基本工具使用。
为了有效的和使用这个工具的人交流,了解一些这个工具的注意点,同时将这个格式转化为自己常用的数据格式是很有必要的

1.Excel处理文件--需要注意的地方

Excel常常用来处理的文件格式有.xls,.xlsx,csv
1.数据量
    1.如果文件的后缀名为*.xls,那么它最多就是65536行
 2.如果文件的后缀名为.xlsx,那么它最多就是1048576行
    从Excel2007开始最大行是1048576==1024*1024===  FFFFF+1

2.跨平台特性
 01.科学计数法
    原因:EXCEl默认常规单元格式,输入或导入11位以上的数字,
        不仅仅显示科学计数法,还会在15位后面的数字补0,导致存储丢失。
  文本TXT文件或CSV文件中包含15位以上的数字,直接使用的EXCEL打开同样会出现科学计数法15位后补0
    解决办法:
        csv文件用文本编辑器打开,比如自带的记事本
        或者自文本导入Excel,分列选文本格式<先打开Excel,然后使用文本导入
            1.新建一个excel,打开
            2.数据-》自文本           
            3.选择需要打开的csv文件      
            4.分隔符号-》空格(可以使它们不是一列显示)-》文本(这个就是确定是不是科学计数法显示)-》完成
02.出现乱码
    文件的编码方式--常见于处理中文的编码时出现

3.安全性
        备份和保密

2.将Excel文件变为CVS格式--然后使用R语言读取csv格式

# -*- coding: utf-8 -*-
import os
import xlrd
import pandas as pd

# use the python 2.7
# # filename = raw_input('Enter file name: ')
filename = "D:/Data/test.xlsx"
LocalFile = filename.decode('utf-8').encode('gbk')
print("文件是"+ LocalFile)
# outDir = raw_input('Enter outFile dir: ')
# os.chdir(outDir) #更改当前的工作目录
os.chdir("D:/Data/Temp")
print("当前工作路径"+os.getcwd()) # 获取当前的工作目录

# 计算excel表格中sheet的个数
excelData = xlrd.open_workbook(LocalFile)
countNum = len(excelData.sheets())

# 读取Excel中的工作表,并将工作表分别存储为csv格式
# 读取Excel文件--分别存储
##读取的列数
toReadCol = 9
for i in range(countNum):
    # # 读入前是Excel存储格式-内部形式,使用读入的函数是read_excel,读入之后变为pandas的DataFrame对象
    data_each = pd.read_excel(LocalFile, sheetname=i, encoding="utf-8")  # 读取Excel文件
    data_each_back = data_each[data_each.columns[0:toReadCol]]
    # 保存的文件名
    outFile = "outFile"+str(i)+".csv"
    print(outFile)
    data_each_back.to_csv(outFile, index=False, encoding="GBK")

# #读取Excel--联合
# 逐个读取每个sheet,并进行合并
data_sum = pd.read_excel(LocalFile, sheetname=0, encoding="utf-8")  # 读取Excel文件
col1 = data_sum.columns[0:9]     # 按照列索引-提取列
 # 按照列名-列,这个在py2有乱码的可能
data_sum = data_sum[col1]
for i in range(countNum):
    print(i)
    data1 = pd.read_excel(LocalFile, sheetname=i, encoding="utf-8")  # 读取Excel文件
    data_sum = pd.concat([data_sum, data1[col1]])

data_sum.to_csv("AllComData.csv", index=False, encoding="GBK")

print("Success")
#os.system("pause")


# # 打包成可执行文件
# # # pyinstaller --console --onefile  D:\Data\ReadExcel2csv.py

参考:

python操作Excel读写--使用xlrd http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html
https://pypi.python.org/pypi/xlrd

blogroll

social