Pandas与EXCEL之数据读取/保存/文件分割/文件合并

如果你是数据分析挖掘从业人员,想必经常会用到EXCEL,但是一遇到很多数据时往往一个简单的操作都足以让性能一般的电脑卡上半天。因此,用其他工具来替代EXCEL的繁琐操作显得很有必要。Pandas作为python在数据挖掘分析方面的一个重要第三方库,能够解决EXCEL的大部分操作问题。下面介绍工作中常用到的一些操作。

(1)读取EXCEL文件

如果只是想简单的读取,看下面:

import pandas as pd
data = pd.read_excel('E:\\PythonTestCode\\public opinion.xlsx')  #excel文件目录 
print(data.head())  #看看读取的数据,默认为前5行

读取指定sheet表中的内容

import pandas as pd
data = pd.read_excel('E:\\PythonTestCode\\public opinion.xlsx', sheetname='private opinion')
print(data.head())

read_excel还有很多其他参数,在pycharm中你可以安装crtl再点击read_excel便可以查看源代码,里面的参数都有解释。比如,读取指定属性的数据

import pandas as pd
data = pd.read_excel('E:\\PythonTestCode\\public opinion.xlsx', sheetname='private opinion', usecols= ['电商平台', '品牌', '评论'])
print(data.head())

这里要注意读取指定列是用参数usecols。参数names不是取指定列,而是给所有的列重新命名。

(2)保存EXCEL文件

在保存EXCEL文件时,我们有时希望能够把多个分析结果保存到一个EXCEL表的多个sheet表中。你可能会想,将两个DataFrame直接to_excel,然后指定sheet名就可以吧,你可以试试

data1 = data.iloc[1:100, :]
data2 = data.iloc[101:200, :]
data1.to_excel('E:\\PythonTestCode\\public opinion_result.xlsx', sheet_name = 'data1')
data1.to_excel('E:\\PythonTestCode\\public opinion_result.xlsx', sheet_name = 'data2')

你会发现,这样根本行不通,直接保存为了最后一个sheet表。其实就是最后一个sheet表覆盖了前面的保存结果。如果要保存为多个sheet表,可以用ExcelWriter

writer = pd.ExcelWriter('E:\\PythonTestCode\\public opinion_result.xlsx')
data1.to_excel(writer, sheet_name = 'data1', index = False)
data2.to_excel(writer, sheet_name = 'data2', index = False)
writer.save()
writer.close()

这样就达到了保存为多个sheet表的效果。

(3)将一个EXCEL文件分割成多个文件

有时因为一个EXCEL文件的数据量很大,需要分割成多个文件进行处理。这时用Pandas的切片操作即可达到要求。

import pandas as pd
data = pd.read_excel('E:\\PythonTestCode\\public opinion.xlsx', sheetname='public opinion')

row_num, column_num = data.shape    #数据共有多少行,多少列
print('the sample number is %s and the column number is %s' % (row_num, column_num))
#这里我们的数据共有210000行,假设要让每个文件1万行数据,即分成21个文件
for i in range(0, 21):
    save_data = data.iloc[i*10000+1:(i+1)*10000+1, :] #每隔1万循环一次
    file_name= 'E:\\PythonTestCode\\public opinion\\public opinion' + str(i) + '.xlsx'
    save_data.to_excel(file_name, sheet_name = 'public opinion', index = False)

分割前的文件是这样

分割前文件

分割后的文件就有这么些了

Pandas与EXCEL之数据读取/保存/文件分割/文件合并_第1张图片分割后文件

(4)将多个EXCEL文件合并成一个文件

分割的文件处理完了我们可能又要把它们合并在一起。这时可以用pandas的concat功能来实现。

import pandas as pd

data0 = pd.read_excel('E:\\PythonTestCode\\public opinion\\public opinion0.xlsx', sheetname='public opinion')
data1 = pd.read_excel('E:\\PythonTestCode\\public opinion\\public opinion1.xlsx', sheetname='public opinion')
data = pd.concat([data0, data1])

for i in range(2, 21):
    file_name = 'E:\\PythonTestCode\\public opinion\\public opinion' + str(i) + '.xlsx'
    data2 = pd.read_excel(file_name)
    data = pd.concat([data, data2])
data.to_excel('E:\\PythonTestCode\\public opinion\\public opinion-concat.xlsx', index = False)

这样就把所有的文件都合并在了一起。

reference:

https://zhuanlan.zhihu.com/p/36031795


你可能感兴趣的:(python常用操作)