Python的条件查询和提取

81 篇文章 2 订阅
78 篇文章 9 订阅
读取数据
import pandas as pd
data = pd.read_csv("C://Users//TD//Desktop//1.csv")
查看列的字段名称
data.columns
查看前5行
data.head()
查看后5行
data.tail()
查看指定的n行
data.head(n=2)
data.tail(n=2)
查看数据字段名称、列名称

data.columns

提取指定行和列的数据
data.iloc[[1,3,4],[1,2]]
     病案id  年龄
1  348969  63
3  350096  72
4  350716  68
提取连续行和列的数据
data.ix[1:5,1:3]
     病案id  年龄
1  348969  63
2  348955  70
3  350096  72
4  350716  68
5  349993  61
提取连续列的数据
data.ix[:,0:3]
         病人ID    病案id  年龄
0    37824593  349941  89
1    37066935  348969  63
2    37058209  348955  70
3    37964732  350096  72
4    38409104  350716  68
5    37883186  349993  61
6    37927157  350050  76
提取连续行的数据
data.ix[0:3,:]
       病人ID    病案id  年龄 性别  ... 是否重复 是否再感染    检查时间 检验时长
0  37824593  349941  89  男  ...    1     0  244.32  NaN
1  37066935  348969  63  女  ...    0     0  408.00  0.0
2  37058209  348955  70  男  ...    0     0   88.80  0.0
3  37964732  350096  72  女  ...    0     0   71.76  0.0
[4 rows x 22 columns]
提取不连续行和列的数据
data.iloc[[1,3],[2,4]]
   年龄             出院时间
1  63  2017/1/15 13:21
3  72  2017/1/13 12:06
提取不连续行的数据
data.iloc[[1,3],:]
       病人ID    病案id  年龄 性别  ... 是否重复 是否再感染    检查时间 检验时长
1  37066935  348969  63  女  ...    0     0  408.00  0.0
3  37964732  350096  72  女  ...    0     0   71.76  0.0
提取不连续列的所有数据
zz=data.iloc[:,[1,3]]
zz.head(n=2)
     病案id 性别
0  349941  男
1  348969  女
查看第4行第2列数据
data.iat[4,2]
68
查看数据的行和列
data.shape
(409, 22)
查看第3行数据
data.iloc[3]
病人ID                            37964732
病案id                              350096
年龄                                    72
..............................
Name: 3, dtype: object
筛选

选择住院天数大于80的数据

data[data.住院天数>90]
         病人ID    病案id  年龄 性别  ... 是否重复 是否再感染   检查时间 检验时长
204  30574226  281773  50  男  ...    0     0  86.16  0.0
或查询

选择住院天数大于70或者手术等级大于2

data[(data.手术等级>2)|(data.住院天数>70)]
         病人ID    病案id  年龄 性别  ... 是否重复 是否再感染    检查时间   检验时长
7    37377080  349347  70  男  ...    0     0   18.00   0.00
24   33037826  284953  47  男  ...    1     0   10.32   0.00
133  38563643  350915  56  女  ...    0     0   20.64    NaN
并查询

&且的用法:选择住院天数大于70并且者手术等级大于2

data[(data.手术等级>2)&(data.住院天数>70)]
         病人ID    病案id  年龄 性别  ... 是否重复 是否再感染   检查时间 检验时长
204  30574226  281773  50  男  ...    0     0  86.16  0.0
[1 rows x 22 columns]
条件查询

选择两列中,数据满足的条件情况是:

data[['病人ID','年龄']][(data.检查时间>7)|(data.年龄>20)]
         病人ID  年龄
0    37824593  89
1    37066935  63
2    37058209  70
3    37964732  72
4    38409104  68
数据描述统计量
data.describe()
mean   
std    
min   
25%    
50%    
75%   
max   
排序:按年龄排序,升序处理
data.sort_values(by='年龄')
         病人ID    病案id  年龄 性别  ... 是否重复 是否再感染    检查时间   检验时长
196  39903334  352681   2  男  ...    1     0    1.92   0.00
377  38482844  350805   2  男  ...    0     0   12.24    NaN
统计性别
data['性别'].value_counts()
男    266
女    143
Name: 性别, dtype: int64
  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值