このような動画をYoutubeやTwitterで見かけたことはありませんか?

バーチャートレースと呼ばれ、Youtubeでランキング系の動画で利用されている方法です。今回はPythonでデータを整形し、Flourishというサイトで作成する方法を解説します。
データはこちらのcsvを使います。

データを整形する
import pandas as pd
import numpy as np
covid = pd.read_csv("COVID-19.csv")
#感染場所が不明のレコードは集計しない
covid = covid.dropna(subset=['受診都道府県コード'])
covid['受診都道府県コード'] = covid['受診都道府県コード'].astype(np.int)
#MultiIndexで返却されるので整形する
pivot_covid = covid.pivot_table(values=['人数'], index=['受診都道府県'], columns=['確定日'], aggfunc='sum', fill_value=0).transpose().reset_index(level=0, drop=False).transpose()
pivot_covid.reset_index(inplace=True)
pivot_covid = pivot_covid.drop(index=0)
pivot_covid.columns.name = None
pivot_covid = pivot_covid.set_index('受診都道府県', drop=True)
pivot_covid = pivot_covid.cumsum(axis=1)
pivot_covid.to_csv("covid-19_bar_chart.csv")
ピボットテーブルで整形する

pivot_tableで整形するとMultiIndexとなり、このままでは利用できないため
reset_indexとtransposeでヘッダーを1行に整形する(やや強引)
このままcsvで保存してエクセルで1行目と3行目を削除しても良い。

日付別に累積和を算出する
pivot_table、aggfuncでsumを指定すると都道府県、日付別に件数を算出することができる。
日付が推移するごとに累積和で取得したいので
cumsum(axis=1)
でaxis=1を指定して累積和のDataFrameを作成する。
作成し終わったら、to_csvで保存する。
カラム名は左から、Name、Category、Imageに設定を変更する
Categoryはグラフ化した時に出力される名前を設定し
Imageは名前ではなく、画像を出力させたい場合はImageのURLパスを指定する
今回は文字列で表示させているため値は入力していない。
Flourishで作成する

無料版の場合はパブリックアカウントとなり、プロジェクトが公開されますので
気をつけましょう。

Create new visualisationを選択します。

右下の方にあるBar chart raceを選択します。

先ほど保存したcovid-19_bar_chart.csvを送信します。

早速グラフが作成され動作を確認することができるでしょう。
設定を変更
凡例を非表示にします

タイトルを設定します

成果物
動画への出力はサポートしていませんので、画面キャプチャーで録画します。
あとはBGMをつけて保存すればYoutubeやTwitterに投稿できますね。
HDサイズの1280×720になるようにしましょう。(上下に帯が出てしまってますね)
皆さんも試してみてはいかがでしょうか