2021-04-01 python数据处理系统学习(十五)数据筛选

2021-04-01 python数据处理系统学习(十五)数据筛选

1、输入数据并查看相关性质

输入数据:

import pandas as pd
import numpy as np
import os
os.chdir(r'C:\Users\wangyu\Desktop\毕业论文')
data=pd.read_excel('最终data.xlsx',sheet_name=0)#表示读取第一个工作簿

查看前五行:

data.head()
Out[4]: 
   Unnamed: 0  信誉评级和违约记录     有效发票率  ...   企业进项每笔金额的方差  进项有效合作单位数量  销项有效合作单位数量
0           1        100  0.963986  ...  3.917948e+06         435         351
1           2        100  0.960703  ...  2.511614e+04        3623        1567
2           3         60  0.979779  ...  5.457243e+04         570         135
3           4         60  0.918609  ...  2.001187e+06         131          26
4           5         80  0.956643  ...  3.316620e+05         390          33

[5 rows x 12 columns]

查看后五行:

data.tail()
Out[5]: 
     Unnamed: 0  信誉评级和违约记录     有效发票率  ...   企业进项每笔金额的方差  进项有效合作单位数量  销项有效合作单位数量
118         119         40  0.988095  ...   1228.014103          17          14
119         120         40  0.676923  ...   2312.309145          16           6
120         121         40  0.902542  ...  25870.030698          11         116
121         122         40  0.897590  ...   2850.090806          21          64
122         123         40  0.529412  ...      0.000000           2           5

[5 rows x 12 columns]

查看每列名称:

data.columns
Out[6]: 
Index(['Unnamed: 0', '信誉评级和违约记录', '有效发票率', '企业的盈利能力(年度平均利润)', '有效发票总量',
       '进项有效发票总金额', '销项有效发票总金额', '企业销项每笔金额的方差', 'Unnamed: 8', '企业进项每笔金额的方差',
       '进项有效合作单位数量', '销项有效合作单位数量'],
      dtype='object')

查看类型:

data.dtypes
Out[7]: 
Unnamed: 0           int64
信誉评级和违约记录            int64
有效发票率              float64
企业的盈利能力(年度平均利润)    float64
有效发票总量               int64
进项有效发票总金额          float64
销项有效发票总金额          float64
企业销项每笔金额的方差        float64
Unnamed: 8         float64
企业进项每笔金额的方差        float64
进项有效合作单位数量           int64
销项有效合作单位数量           int64
dtype: object

查看维度:

data.ndim
Out[8]: 2

查看行列的数量:

data.shape
Out[9]: (123, 12)

查看元素数量的大小:

data.size
Out[10]: 1476

查看0~2行:

data[:3]
Out[11]: 
   Unnamed: 0  信誉评级和违约记录     有效发票率  ...   企业进项每笔金额的方差  进项有效合作单位数量  销项有效合作单位数量
0           1        100  0.963986  ...  3.917948e+06         435         351
1           2        100  0.960703  ...  2.511614e+04        3623        1567
2           3         60  0.979779  ...  5.457243e+04         570         135

[3 rows x 12 columns]

查看序列类型:

type(data.信誉评级和违约记录)
Out[16]: pandas.core.series.Series

type(data)
Out[12]: pandas.core.frame.DataFrame

专门选取某几个列:

data[['信誉评级和违约记录','有效发票率']]
Out[19]: 
     信誉评级和违约记录     有效发票率
0          100  0.963986
1          100  0.960703
2           60  0.979779
3           60  0.918609
4           80  0.956643
..         ...       ...
118         40  0.988095
119         40  0.676923
120         40  0.902542
121         40  0.897590
122         40  0.529412

[123 rows x 2 columns]

先选列再选行

data[['信誉评级和违约记录','有效发票率']][:7]
Out[20]: 
   信誉评级和违约记录     有效发票率
0        100  0.963986
1        100  0.960703
2         60  0.979779
3         60  0.918609
4         80  0.956643
5        100  0.946566
6        100  0.973124

2、loc和iloc

2.1 loc

data.loc[A,B],A和B分别表示行和列的标签
loc方法很灵活,具体如下:
用loc读取指定的行、列

data.loc[:,'有效发票率']
Out[21]: 
0      0.963986
1      0.960703
2      0.979779
3      0.918609
4      0.956643
  
118    0.988095
119    0.676923
120    0.902542
121    0.897590
122    0.529412
Name: 有效发票率, Length: 123, dtype: float64

读取多行:

data.loc[:,['有效发票率','企业进项每笔金额的方差']]
Out[22]: 
        有效发票率   企业进项每笔金额的方差
0    0.963986  3.917948e+06
1    0.960703  2.511614e+04
2    0.979779  5.457243e+04
3    0.918609  2.001187e+06
4    0.956643  3.316620e+05
..        ...           ...
118  0.988095  1.228014e+03
119  0.676923  2.312309e+03
120  0.902542  2.587003e+04
121  0.897590  2.850091e+03
122  0.529412  0.000000e+00

[123 rows x 2 columns]

多行多列:

data.loc[0:2,['有效发票率','企业进项每笔金额的方差']]
Out[23]: 
      有效发票率   企业进项每笔金额的方差
0  0.963986  3.917948e+06
1  0.960703  2.511614e+04
2  0.979779  5.457243e+04

只取一行两列:

data.loc[6,['有效发票率','企业进项每笔金额的方差']]
Out[24]: 
有效发票率              0.973124
企业进项每笔金额的方差    21981.264090
Name: 6, dtype: float64

只取指定两行:

data.loc[[6,8],['有效发票率','企业进项每笔金额的方差']]
Out[25]: 
      有效发票率   企业进项每笔金额的方差
6  0.973124  21981.264090
8  0.976468  22293.729954

loc函数还可以进行查找满足某些条件的数,例如下面查找评分大于90的企业编号以及这些企业的有效发票率:

data.loc[data['信誉评级和违约记录']==100,['Unnamed: 0','有效发票率']]
Out[28]: 
    Unnamed: 0     有效发票率
0            1  0.963986
1            2  0.960703
5            6  0.946566
6            7  0.973124
7            8  0.942899
8            9  0.976468
12          13  0.934293
14          15  0.939297
15          16  0.931413
16          17  0.934498
17          18  0.943703
18          19  0.931213
21          22  0.909836
23          24  0.951162
25          26  0.932819
26          27  0.958096
30          31  0.961921
41          42  0.911765
47          48  0.964016
53          54  0.927114
58          59  0.963306
63          64  0.934613
80          81  0.946512
83          84  0.902174
87          88  0.941368
88          89  0.962025
90          91  0.950980

2.2 iloc

读取想要的

data.iloc[:,[2,3]]
Out[29]: 
        有效发票率  企业的盈利能力(年度平均利润)
0    0.963986    -1.939309e+09
1    0.960703     4.638077e+08
2    0.979779     6.068909e+08
3    0.918609     1.891956e+09
4    0.956643     5.958721e+06
..        ...              ...
118  0.988095    -2.129928e+05
119  0.676923     1.769471e+05
120  0.902542    -1.136832e+06
121  0.897590     6.994340e+03
122  0.529412     2.267197e+05

[123 rows x 2 columns]

指定某一行的相关数据:

Out[30]: 
有效发票总量          28055.00
进项有效发票总金额    52026978.69
Name: 2, dtype: float64

2.3 loc和iloc的区别

loc对标签进行操作,iloc对索引的数字进行操作
iloc不能条件索引

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值