pandasでデータ編集コード(売上集計)
やりたいこと・・・1週間のFXの損益をまとめる
パイソンを実行することで、
上記添付のCSV画像から集計excel画像のようにしたい
コード記載の手順としては
①csvからpandasでの読込
②集計に必要な項目を表示する
③金額集計(確定損益・スワップ)groupby/sum
④項目(通貨ペア)の出現回数のカウント groupby/count
⑤各フレームをくっつける(concat)
⑥行(インデックス)に各合計を追加
⑦pandasからExcelへ
完成したコード
import pandas as pd #読み込み #df = pd.read_csv(r'C:\Users\usita\Dropbox\My PC (DESKTOP-DBQ1KH6)\Desktop\成立履歴_20210612092735.csv',encoding='shift jis') df = pd.read_csv('C:\\Users\\usita\\Dropbox\\My PC (DESKTOP-DBQ1KH6)\\Desktop\\成立履歴_20210612092735.csv',encoding='shift jis') #エスケープシーケンス print(df) #dfの項目を表示 print(df.columns.values) #必要項目のみを表示する。 df = df[['通貨ペア','確定損益','(スワップ)']] #a["名前"].dtype 集計の計算の為の準備 データ型を調べる print(df.dtypes) #+1,000を1000に置き換える if df['確定損益'].dtype == object: df['確定損益'] = df['確定損益'].str.replace('+', '') df['確定損益'] = df['確定損益'].str.replace(',', '') df = df.astype({'確定損益': int}) #通貨ペアごとの損益/(スワップ)集計 df_tuka = df.groupby('通貨ペア').sum()[['確定損益','(スワップ)']] #通貨ペアごとの回数集計のためのrename df_rename = df.rename(columns={'確定損益':'回数'}) #通貨ペアごとの回数集計 df_count = df_rename.groupby('通貨ペア').count()['回数'] #concat df_concat = pd.concat([df_count, df_tuka], axis=1) #print(df_concat) #columnns列合計 追加 /Total = df['1'].sum() /df.loc['FIVE'] = ['A5', 'B5', 'C5'] 回数 確定損益 (スワップ) kaisu_t = df_concat['回数'].sum() kakutei_t = df_concat['確定損益'].sum() swap_t = df_concat['(スワップ)'].sum() df_concat.loc['合計'] = [kaisu_t, kakutei_t, swap_t] #excel書き出し df_concat.to_excel(r'C:\Users\usita\Dropbox\My PC (DESKTOP-DBQ1KH6)\Desktop\集計.xlsx')
これを順番説明してきます。
まずはpandasでのCSVファイルの読み込みです。