[英]Pandas - Write multiple dataframes to single excel sheet
我有一個包含45列和1000行的數據框。 我的要求是使用每列的前2個值及其百分比創建一個excel工作表(假設col 1的值“ python”在其中存在500次,百分比應為50)
我用了:
writer = pd.ExcelWriter('abc.xlsx')
df = pd.read_sql('select * from table limit 1000', <db connection sring>)
column_list = df.columns.tolist()
df.fillna("NULL", inplace = True)
for obj in column_list:
df1 = pd.DataFrame(df[obj].value_counts().nlargest(2)).to_excel(writer,sheet_name=obj
writer.save()
這會將輸出寫在同一文檔的單獨的excel選項卡中。 我需要它們以以下格式放在一張紙上:
Column Name Value Percentage
col1 abc 50
col1 def 30
col2 123 40
col2 456 30
....
讓我知道任何其他函數也可以到達此輸出。
讓我sheet_name=obj
的第一件事是,您每次都通過說sheet_name=obj
來更改工作表名稱。如果您擺脫了這一點,那么僅此一項就可以解決您的問題。
如果沒有,我建議將結果串聯到一個大的DataFrame中,然后將該DataFrame寫入Excel。
for obj in column_list:
df = pd.DataFrame(df[obj].value_counts().nlargest(2))
if df_master is None:
df_master = df
else:
df_master = pd.concat([df_master,df])
df_master.to_excel("abc.xlsx")
這是有關在Pandas中堆疊/連接數據幀的更多信息https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.