python怎么筛选excel数据_python 利用pandas处理excel数据(获取特定值,排序,筛选)...

这是06年的建模题目中的excel文件,我想这用python处理一下,只需要获取出版社代码为P115的数据,所以需要筛选。

9c04bb43f763

Paste_Image.png

1、首先我先选择我所需要的那八行数据

'出版社代码'

'出版社在您心中的位置'

'学科类别',

'定价'

'教材内容新颖,保持学术前沿水平'

'教材的作者是相应领域的权威,所以课程理论基础扎实'

'教材印刷及排版质量'

'教材价格'

2、以P115为键值进行筛选

9c04bb43f763

Paste_Image.png

3、获取我们所需要的数据

使用df=Datafram(data,columns=[])#data的是原数据,coulumns是我们所需要的索引,df是一个新的pandas的对象。

9c04bb43f763

Paste_Image.png

一般列数较大的话我用的pycharm显示不出来,所以其余的部分在下面是完整的。

4、然后进行下一布以某一列数据进行排序

data1=data1.sort_values(by='学科类别')

9c04bb43f763

Paste_Image.png

9c04bb43f763

Paste_Image.png

over 排序完成

接下来就可以用这些数据画图然后看看这些东西互相是怎么个关系

所有代码在这里,挺简单的,换一个别的东西随便就可以用了

import xlrd

import pandas as pd

import xlwt

for i in range(2001,2006):#处理从2001年到2005年的数据

string=str(i)#转化成字符串

data = pd.read_excel('附件2_问卷调查数据(五年).xls',sheetname=string)#pandas读取excel的函数

if (i == 2001) or (i == 2002) or (i == 2005):#为什么这里要用if语句呢,因为我得到的excel文本,有两个sheet的想要索引的

df = data[data.出版社代码 == 'P115']#字符有不一样的,一个前面有空格一个前面没有空格

else:

df=data[data.出版社代码== ' P115']

#下面这个语句是以这键值重新组合成一个pandas,以columns里的为索引

data1=pd.DataFrame(df,columns=['出版社在您心中的位置','学科类别','定价','教材内容新颖,保持学术前沿水平','教材的作者是相应领域的权威,所以课程理论基础扎实','教材印刷及排版质量','教材价格'])

print(df)

data1=data1.sort_values(by='学科类别')#sort是以学科类别为标准排序

data1.to_excel(string+'.xls',sheet_name='string', encoding='utf-8')

#储存到当前目录下,但是有一点我不知道可不可以做好,这个可以储存到五个excel里面,但是我弄不出来把他们放到一个excel

# 里面的五个标签页里,好气啊

介绍个利器:

df.课程名称.str.len()<3

这个表示所有这一个列表的字符串长度不超过3

几天后简化的版本

import pandas as pd

for i in range(2001,2006):

df = pd.read_excel('重新处理.xls',sheetname=str(i))

df['课程名称'] = df['课程名称'].astype(str)#转换类型

df=df[(df.教材获得方式 == 1)&(df.是否为旧书 == 1)&(df.课程名称<='72')&(df.课程名称>='0')]

df=pd.DataFrame(df,columns=['A出版社在您心中的位置','课程名称','学科类别','教材内容新颖,保持学术前沿水平','教材的作者是相应领域的权威,所以课程理论基础扎实','教材印刷及排版质量','教材价格'])

df = df.sort_values(by='课程名称')#排序

df=df.reset_index(drop=True)#重建索引

df.to_excel(str(i)+'.xls',sheet_name='string', encoding='utf-8')#保存文件

一些其他的代码,不用看了

import pandas as pd

import numpy as np

A=[]

for x in range(2001,2006):

Z=[]

X=[]

df = pd.read_excel('满意度新.xlsx',sheetname=str(x))

X = df.课程名称.value_counts()

df=df[df.出版社代码=='P115']

df = df.reset_index(drop=True) # 重建索引

Z=df.课程名称.value_counts()

for i in range(1, 73):

try:

print(X[i])

except KeyError:

X[i] = 100000000

print(X[i])

for i in range(1,73):

try:

print(Z[i])

except KeyError:

Z[i]=0

print(Z[i])

for i in range(1, 73):

A.append((Z[i]/X[i])*100)

print(A)

A=np.array(A).reshape(72,5)

A=pd.DataFrame(A)

A.to_excel('占有率新的.xls')

# for i in range(1,73):

# Z.append(list(df[df.课程名称 == i].mean()))

# Z=pd.DataFrame(Z)

# Z=Z.fillna(0)

# Z.to_excel(str(x) + 'p115满意度.xls', sheet_name='string', encoding='utf-8') # 保存文件

#

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值