簡體   English   中英

熊貓-將多個數據框寫入單個Excel工作表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM