Python

【Pandasで簡単データ解析】各列をある列の数値で割る

データの用意

データは財務省貿易統計からコーヒー生豆の輸入についてデータを取得します。

品目コードは090111000です。

データはcsvでダウンロードできます。

pandasのインポート

df = pd.read_csv('sample.csv',encoding='shift_jis')

日本語を使用するときはencording=’shift_jisをオプションでつけてください。

skiprowsを使う

skiprowsのオプションで行を指定して読み込むことができます。

また、列を指定するusecolsも便利なので一緒に覚えておきましょう。

1~3列目を読み込む場合:usecols=[1, 3]

skiprows=8で9行目からデータが読み込まれます。

df = pd.read_csv('sample.csv',encoding='shift_jis',skiprows=8)

実際にデータの中身を見てみましょう。

これで読み込みは完了です。

今回はこの要領で2019年度と2020年度のデータを保存して、concat関数で結合したデータを元に解説していきます。

df_2019 = pd.read_csv('2019.csv',encoding='shift_jis')
df_2020 = pd.read_csv('2020.csv',encoding='shift_jis')

df_2019['年度']=2019
df_2020['年度']=2020

df_concat = pd.concat([df_2019, df_2020])

列を特定して数値で割る場合

金額を1000で割る場合はこのような表現で実現できます。

df_concat['累計金額'] = df_concat['累計金額'].div(1000)

特定の列の数値を使って別の列を割る場合

各列をある列の数値で割るやり方を使用するため、新しく計算用のデータフレームを作成します。

数量を累計金額で割る例を紹介します。

new=['累計第2数量','累計金額']

df_newは上記の2つの列になります。

df_new=df_concat[new]

金額で全ての列を割り、最後に金額の列をドロップします。

df_div = df_new.div(df_new['累計金額'], axis=0).drop('累計金額', axis=1)

csvファイルで出力する

df.to_csv('2019-2020.csv',index=False, encoding="shift-jis") 

これで完了です。

pandasには他にも便利な使い方があるので、ぜひ使えるようになってください。

今回使ったテクニックで詳細も紹介しています。

↓行指定でデータを読み込み・保存する

【Pandasで簡単データ解析】行指定してCSVファイルを読み込む データの用意 データは財務省貿易統計からコーヒー生豆の輸入についてデータを取得します。 品目コードは0901110...

↓読み込んだデータの結合

【Pandasで簡単データ解析】CSVファイルを結合する データの準備 2020年度のコーヒー生豆輸入量のcsvデータを使用します。 事前に不要なデータを削除しています。 行削除につい...
Mickey@コーヒー好きエンジニア

【製造業×プログラミング×AI】Python/VBAを活用した業務改善、Streamlit/Plotlyを活用したWebアプリ開発について初心者向けに発信中|趣味は自家焙煎コーヒー作り|noteでは焙煎理論を発信|ココナラではプログラミングに関する相談,就職/転職やコーヒーに関する相談などのサービスをやっています