実現したいこと
ここにpandas.read_csvで読み取ってきたDataFrameが複数有るとします。
csv1つ1つをカラー化するのは(*1)のようなソースコードで出来たのですが、
その1つ1つカラー化したデータを以下のような1つにするにはどうすれば良いのでしょか?
date symbol
0 2022-01-01 TREX ←例えば赤
1 2022-01-02 TREX
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
date symbol
0 2022-01-01 00:00:00 TREX ←例えば赤
1 2022-01-02 00:00:00 TREX
0 NaN NaN ←見易いようにnan行を挿入
0 2022-01-03 00:00:00 MSFT ←例えば青
1 2022-01-04 00:00:00 MSFT
(*1)のソースコード
python
1import csv, openpyxl, os, pandas as pd 2from openpyxl.styles import PatternFill 3full_path = os.path.join(folder_path, file_name) 4 5wb = openpyxl.Workbook() 6ws1 = wb.active 7# ws1 = wb['Sheet1'].active 8 9df = pd.read_csv(os.path.join(full_path)) 10for i in range(len(df)): 11 row = list(df.iloc[i]) 12 ws1.append(row) 13 14# set gray color cell fill 15fill_yellow = PatternFill(patternType='solid', fgColor='4287f5') 16fill_blue = PatternFill(patternType='solid', fgColor='ebdb34') 17 18# write in sheet 19for row in ws1: 20 for cell in row: 21 ws1[cell.coordinate].fill = fill_yellow 22 23# save target xlsx file 24wb.save(os.path.join(fp, 'temp.xlsx'))
サンプルデータ
python
1import datetime as dt, numpy as np 2data1 = {'date':[dt.datetime(2022,1,1), dt.datetime(2022,1,2)], 'symbol':['TREX', 'TREX']} 3data2 = {'date':[dt.datetime(2022,1,3), dt.datetime(2022,1,4)], 'symbol':['MSFT', 'MSFT']} 4df1 = pd.DataFrame(data1) 5df2 = pd.DataFrame(data2) 6df_list = [df1, df2] 7nan_row = pd.DataFrame([[np.nan]*2], columns=df1.columns) 8pd.concat([pd.concat([df, nan_row]) for df in df_list])
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。