为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas - 将多个数据框写入单个 Excel 工作表

Pandas - 将多个数据框写入单个 Excel 工作表

慕婉清6462132 2021-11-02 20:08:39
我有一个包含 45 列和 1000 行的数据框。我的要求是创建一个单独的 Excel 工作表,其中包含每列的前 2 个值及其百分比(假设第 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=objwriter.save()这会将输出写入同一文档的单独 excel 选项卡中。我需要它们在以下格式的单个工作表中:Column Name          Value         Percentagecol1                 abc           50col1                 def           30col2                 123           40col2                 456           30....让我知道任何其他功能以及获得此输出。
查看完整描述

1 回答

?
MM们

TA贡献1886条经验 获得超2个赞

跳出来的第一件事是,您每次都在更改工作表名称,说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


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 341 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号