pandas全国各区无新增新冠肺炎确诊病例天数

该文讲述了如何利用Python的pandas和faker库构造660个城市COVID-19的模拟数据,包括城市名和最后一例确诊日期。然后通过添加筛选器处理缺失值,并将日期转换为时间戳,计算从最后一例确诊到2021年3月10日的无报告病例天数。最后,对结果进行排序,为公众号发布做准备。
摘要由CSDN通过智能技术生成

2020年3月10号-2021年3月10号新冠肺炎疫情期间,“全国发布”微信公众号会发布疫情数据,其中会介绍全国660城市无报告病例天数情况。因为找不到数据,我先通过faker来构造数据来做练习。

构造数据如下:

import pandas as pd
import faker
f=faker.Faker('zh-cn')
df=pd.DataFrame({'城市':[f.city() for i in range(660)],'最后一例确诊日期':[f.date_between(start_date='-3y',end_date='-2y').strftime('%Y-%m-%d') for i in range(660)]})


'''
	城市	最后一例确诊日期
0	南宁县	2020-04-09
1	海燕县	2021-03-04
2	丹市	2020-03-26
3	长春县	2021-01-26
4	波市	2020-09-16
...	...	...
655	超市	2020-11-09
656	兰英县	2020-12-28
657	强市	2020-05-10
658	贵阳县	2020-11-01
659	贵阳县	2020-09-06
660 rows × 2 columns

'''

因为构造的数据没有Nan情况,我通过筛选器来实现,要用到win_info:

win_info=(50,'Nan')
filter=df.index.isin(df.sample(win_info[0]).index)&~(df.最后一例确诊日期.isna())  #创建一个筛选器变量
df.loc[filter,'最后一例确诊日期']=win_info[1]  #执行随机选取,将Nan写入
df.loc[df.最后一例确诊日期==win_info[1]]    #显示本次随机写入的结果

以上已经构造成功,下一步增加一列统计天数,先将确诊日期转换为时间类型,进行缺失值处理,接着与当天时间相减计算出天数:

(
    df.replace('Nan',pd.NaT)
    .assign(最后一例确诊日期=lambda x:x['最后一例确诊日期'].astype('datetime64[ns]'))
    .assign(无报告病例天数=lambda x:pd.Timestamp('2021-3-10')-x['最后一例确诊日期'])
    .assign(无报告病例天数=lambda x:x['无报告病例天数'].dt.days)
    .sort_values('无报告病例天数',ascending=False,na_position='first',ignore_index=True)
)

'''
	城市	最后一例确诊日期	无报告病例天数
0	雪梅市	NaT	NaN
1	柳县	NaT	NaN
2	志强县	NaT	NaN
3	雪县	NaT	NaN
4	呼和浩特市	NaT	NaN
...	...	...	...
655	淮安县	2021-03-06	4.0
656	东莞县	2021-03-07	3.0
657	福州市	2021-03-07	3.0
658	兴城县	2021-03-07	3.0
659	飞县	2021-03-09	1.0
660 rows × 3 columns
'''

最后还可以将结果进行迭代操作形成文字,方便在公众号中发布。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要获取美国2021年新冠肺炎确诊病例数据。可以从各大数据平台获取该数据,例如Kaggle、GitHub等。在这里,我们使用Kaggle平台提供的数据集。 然后,我们需要使用PySpark进行数据分析。PySpark是Apache Spark的Python API,它提供了一种快速、可扩展的大数据处理框架。我们可以使用PySpark对数据进行清洗、转换和分析,并使用PySpark的可视化工具来可视化结果。 下面是一段在PySpark中运行的可视化代码,用于显示美国2021年新冠肺炎确诊病例的趋势图。 ```python from pyspark.sql import SparkSession import pyspark.sql.functions as F import matplotlib.pyplot as plt # create a SparkSession spark = SparkSession \ .builder \ .appName("COVID-19 Analysis") \ .getOrCreate() # load the data into a PySpark DataFrame df = spark \ .read \ .format("csv") \ .option("header", "true") \ .option("inferSchema", "true") \ .load("covid_19_data.csv") # filter the data for US and 2021 us_data = df.filter((df['Country/Region'] == 'US') & (df['ObservationDate'].contains('2021'))) # group the data by date and aggregate the confirmed cases us_data_agg = us_data.groupBy('ObservationDate') \ .agg(F.sum('Confirmed').alias('Total Confirmed Cases')) \ .orderBy('ObservationDate') # convert the PySpark DataFrame to a Pandas DataFrame for visualization us_data_pd = us_data_agg.toPandas() # plot the data using Matplotlib plt.plot(us_data_pd['ObservationDate'], us_data_pd['Total Confirmed Cases']) plt.xlabel('Date') plt.ylabel('Confirmed Cases') plt.title('COVID-19 Confirmed Cases in the US (2021)') plt.show() ``` 该代码将数据加载到PySpark DataFrame中,然后使用PySpark的过滤、分组和聚合功能对数据进行处理和分析。最后,该代码将PySpark DataFrame转换为Pandas DataFrame,并使用Matplotlib库绘制趋势图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值