作者 | 老表
来源 |简说Python
大师兄Eric
,我下载的是湖北新冠肺炎疫情历史总数据下载.xls
,大家可以随意选择其他省。https://tianchi.aliyun.com/s/986f2e8af9e34f8ff8ae84ea7a18f96a
xlsx
格式,然后读取。#导入数据处理包
importpandasaspd
#读取Excel,header=1表示取第二行数据作为列名(表头)
data_set=pd.read_excel('湖北新冠肺炎疫情历史总数据下载.xlsx',header=1)
#查看数据规模
data_set.shape
#输出:(200, 5)
#查看表头
data_set.columns
#输入:Index(['时间', '新增', '总确诊', '治愈', '死亡'], dtype='object')
通过图中介绍,我们知道Excel中MID函数的含义就是获取指定单元格中字符串指定位置的字符子串的,换到Python中就很好实现了,直接使用字符串的索引即可,如下:
'''
MID
根据时间一列新增一列:月
Excel实现:MID(A3,6,1)
'''
data_set['月']=[i[5:6]foriindata_set['时间']]
data_set.head(3)
输出:
时间新增总确诊治愈死亡月
02020.1.20722702561
12020.1.211053752891
22020.1.226944428171
CONCATENATE函数的作用就是将指定的几个单元格的内容连接起来,变成一个字符串,在Excel中也可以用&
也可以实现,在Python中更简单,直接用+
即可实现。
'''
CONCATENATE函数
将时间、新增、总确诊这三列合并,变成一列:通报
Excel实现:CONCATENATE(A3,"-新增:",B3,",总确诊:",C3,"。")
'''
data_set['通报']=[
i[1]['时间']+
'-新增:'+str(i[1]['新增'])+
',总确诊:'+str(i[1]['总确诊'])+'。'
foriindata_set.iterrows()
]
data_set.head(3)
输出:
时间新增总确诊治愈死亡月通报
02020.1.207227025612020.1.20-新增:72,总确诊:270。
12020.1.2110537528912020.1.21-新增:105,总确诊:375。
22020.1.2269444281712020.1.22-新增:69,总确诊:444。
AND函数的作用就是判断每个表达式是否都为真,如果都为真就返回True,否则就返回False,在Python中可以用and
运算符实现这种判断。
code style="overflow-x: auto;padding: 16px;color: #abb2bf;display: -webkit-box;font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;font-size: 12px;-webkit-overflow-scrolling: touch;letter-spacing: 0px;padding-top: 15px;background: #282c34;border-radius: 5px;">'''
AND函数
假设规定每日新增人数超过300而且剩余确诊人数大于500,就算危险预警
Excel实现:AND(B3>300,C3-D3>500)
'''
data_set['危险预警']=[
i[1]['新增']>300
andi[1]['总确诊']-i[1]['治愈']>500
foriindata_set.iterrows()]
data_set.head(3)
输出:
时间新增总确诊治愈死亡月通报危险预警
02020.1.207227025612020.1.20-新增:72,总确诊:270。False
12020.1.2110537528912020.1.21-新增:105,总确诊:375。False
22020.1.2269444281712020.1.22-新增:69,总确诊:444。False
IF函数就好实现了,Python中就有if
语法。
'''
IF函数
假设规定当日新增人数超过1000就算暴增预警,否则为0
Excel实现:IF(B3>1000,"当日暴增预警",0)
'''
surge_warning=[]
foriindata_set.iterrows():
ifi[1]['新增']>1000:
surge_warning.append('当日暴增预警')
else:
surge_warning.append(0)
data_set['暴增预警']=surge_warning
data_set.head(3)
#删除指定列
data_set=data_set.drop(['年'],axis=1)
#重新排列顺序
data_set=data_set.reindex(columns=['时间','月','新增','总确诊','治愈','死亡'])
分享
点收藏
点点赞
点在看
文章转发自AI科技大本营微信公众号,版权归其所有。文章内容不代表本站立场和任何投资暗示。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM