Covid-19数据分析

各国历史数据分析

数据加载

  1. 加载Covid19.All.csv
  2. 设置表名:his-all
  3. 修改其它列名、调整顺序,添加累计死亡月份(Date.ToText([date], "yyyy-MM"))列

     let= Csv.Document(File.Contents("Covid19.All.csv"),[Delimiter=",", Columns=11, Encoding=65001, QuoteStyle=QuoteStyle.None]),
         提升的标题 = Table.PromoteHeaders(, [PromoteAllScalars=true]),
         更改的类型 = Table.TransformColumnTypes(提升的标题,{ {"date", type date}, {"country", type text}, {"countryCode", type text}, {"province", type text}, {"provinceCode", type text}, {"city", type text}, {"cityCode", type text}, {"confirmed", Int64.Type}, {"suspected", Int64.Type}, {"cured", Int64.Type}, {"dead", Int64.Type} }),
         插入的月份 = Table.AddColumn(更改的类型, "月份", each Date.ToText([date], "yyyy-MM"), type text),
         重排序的列 = Table.ReorderColumns(插入的月份,{"date", "月份", "country", "countryCode", "province", "provinceCode", "city", "cityCode", "confirmed", "suspected", "cured", "dead"}),
         重命名的列 = Table.RenameColumns(重排序的列,{ {"date", "日期"}, {"country", "国家"}, {"countryCode", "国家代码"}, {"province", "省"}, {"provinceCode", "省代码"}, {"city", "市"}, {"cityCode", "市代码"}, {"confirmed", "累计确诊"}, {"suspected", "累计疑似"}, {"cured", "累计治愈"}, {"dead", "累计死亡"} }),
         已添加自定义 = Table.AddColumn(重命名的列, "现有确诊", each [累计确诊]-[累计治愈]-[累计死亡], Int64.Type)
     in
         已添加自定义
    
  4. 引用his-all,命名为his-country
  5. 过滤为空的行
  6. 删除省市相关列

     let= #"his-all",
         筛选的行 = Table.SelectRows(, each [] = ""),
         删除的列 = Table.RemoveColumns(筛选的行,{"省", "省代码", "市", "市代码"})
     in
         删除的列
    
  7. 引用his-country,命名为day-country
  8. 筛选最近一日的数据
     let= #"his-country",
         筛选的行 = Table.SelectRows(, each [日期] = List.Max(#"his-all"[日期]))
     in
         筛选的行
    

模型设计

  1. 打开数据页
  2. 选择his-country,添加一列新增数 = 当天累计确诊 - 上日累计确诊(负数归0)
     新增数 = 
     var this_value = [累计确诊]
     var this_code = [国家代码]
     var last_value =  CALCULATE(SELECTEDVALUE ( 'his-country'[累计确诊], 0 ), ALL('his-country'), PREVIOUSDAY('his-country'[日期]),'his-country'[国家代码] = this_code)
     return if(this_value > last_value, this_value - last_value, 0)
    
  3. 选择his-country,添加一列死亡数 = 当天累计死亡 - 上日累计死亡(负数归0)
     死亡数 = 
     var this_value = [累计死亡]
     var this_code = [国家代码]
     var last_value =  CALCULATE(SELECTEDVALUE ( 'his-country'[累计死亡], 0 ), ALL('his-country'), PREVIOUSDAY('his-country'[日期]),'his-country'[国家代码] = this_code)
     return if(this_value > last_value, this_value - last_value, 0)
    

新增数按月丝带图

  1. 在报表页添加功能区图表,设置轴 - his-country[月份]图例 - his-country[国家]值 - his-country[新增数]
  2. 数据太多的话,可筛选月份国家

死亡数按月丝带图

  1. 在报表页添加功能区图表,设置轴 - his-country[月份]图例 - his-country[国家]值 - his-country[死亡数]
  2. 分析面板添加趋势线预测,扩大预测长度

全球累计确诊趋势

  1. 在报表页添加折线图,设置轴 - his-country[日期]值 - his-country[累计确诊]

各国曲线手机版面

  1. 新增报表页,设置页面宽度为600,高度3000
  2. 添加卡片图,设置字段 - day-country[累计确诊],筛选单选美国,设置函数标题
  3. 添加折线图,设置轴 - 日期图例 - 国家值 - 新增数,筛选美国
  4. 复制2~3步,添加巴西、印度、俄罗斯、南非、墨西哥等多个国家

中国各省市累计数据分析

数据加载

  1. 打开数据转换
  2. 引用his-all,命名为day-all
  3. 刷选最近一天的数据
     let= #"his-all",
         筛选的行 = Table.SelectRows(, each [日期] = List.Max(#"his-all"[日期])),
         更改的类型 = Table.TransformColumnTypes(筛选的行,{ {"市代码", type text} })
     in
         更改的类型
    
  4. 引用day-all,命名为day-province,保存中国各省数据
  5. 筛选国家代码 = CN省代码不为空,为空
     let= #"day-all",
         筛选的行 = Table.SelectRows(, each [国家代码] = "CN"),
         筛选的行1 = Table.SelectRows(筛选的行, each [省代码] <> ""),
         筛选的行2 = Table.SelectRows(筛选的行1, each [] = ""),
         删除的列 = Table.RemoveColumns(筛选的行2,{"市", "市代码"})
     in
         删除的列
    
  6. 引用day-all,命名为day-city,保存湖北各市数据
  7. 筛选国家代码 = CN市代码不为空、 = "湖北省
  8. 删除累计疑似、现有确诊、累计确诊等列
  9. 删除监狱系统、境外输入等行
  10. 选择累计治愈累计死亡,执行转换 - 逆透视列
     let= #"day-all",
         筛选的行 = Table.SelectRows(, each [国家代码] = "CN"),
         筛选的行1 = Table.SelectRows(筛选的行, each ([市代码] <> "") and ([] = "湖北省")),
         删除的列 = Table.RemoveColumns(筛选的行1,{"累计疑似", "现有确诊"}),
         筛选的行2 = Table.SelectRows(删除的列, each [] <> "监狱系统"),
         筛选的行3 = Table.SelectRows(筛选的行2, each [] <> "境外输入"),
         删除的列1 = Table.RemoveColumns(筛选的行3,{"累计确诊"}),
         逆透视的列 = Table.UnpivotOtherColumns(删除的列1, {"日期", "月份", "国家", "国家代码", "省", "省代码", "市", "市代码"}, "属性", "值")
     in
         逆透视的列
    

模型设计

  1. 打开数据页,选择day-province
  2. 新建排名列:排名 = RANKX ( 'day-province', 'day-province'[累计确诊], 'day-province'[累计确诊] ,ASC)

各省累计确诊着色地图

  1. 新建报表页,添加着色地图,设置位置 - day-province[省]工具提示 - day-province[累计确诊]
  2. 设置格式 - 数据颜色,根据排名列设置色阶
  3. 筛选,不要选香港和澳门,地图位置有问题

湖北各市治愈和死亡数据气泡地图

  1. 新建报表页,添加气泡地图,设置位置 - day-city[市]图例 - day-city[属性]图例 - day-city[值]

全球各大洲、各国详情数据分析(08-20)

数据加载

  1. 获取数据 - Excel(网页中如果有表格,可以作为Excel处理)
  2. 选择COVID-19 Virus Pandemic - Worldometer.html(如果可访问外网,可直接加载Web链接)
  3. 选择表 1
  4. 修改表名:当前详情表
  5. 过滤索引列空行
  6. 过滤总确诊小于10000的国家:= Table.SelectRows(筛选的行, each [TotalCases] > 10000)
  7. 关闭并应用数据

各大洲占比和排名分析

  1. 新建度量:累计确诊 = SUM('当前详情表'[TotalCases])
  2. 添加树状图,设置组 - 大洲详细信息 - 国家值 - 累计确诊
  3. 添加条形图,设置轴 - 大洲值 - 累计确诊
  4. 添加饼图,设置图例 - 大洲值 - 累计确诊
  5. 调整色彩、排版
  6. 可将累计确诊改为死亡康复检测等数据进行类似分析

确诊、死亡人口比例分析

  1. 添加柱状图,设置轴 - 国家图例 - 国家值 - Tot Cases/1M pop
  2. 添加柱状图,设置轴 - 国家图例 - 国家值 - Deaths/1M pop
  3. 通过筛选器限制数据条数 1.添加散点图,设置图例 - 大洲X轴 - Tot Cases/1M pop 平均值Y轴 - Deaths/1M pop 平均值大小 - Population

数据来源

results matching ""

    No results matching ""