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

我有一个包含 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=obj

writer.save()

这会将输出写入同一文档的单独 excel 选项卡中。我需要它们在以下格式的单个工作表中:


Column Name          Value         Percentage

col1                 abc           50

col1                 def           30

col2                 123           40

col2                 456           30

....


让我知道任何其他功能以及获得此输出。


慕婉清6462132
浏览 342回答 1
1回答

MM们

跳出来的第一件事是,您每次都在更改工作表名称,说sheet_name=obj如果您摆脱它,仅此一项就可以解决您的问题。如果没有,我建议将结果连接到一个大型 DataFrame 中,然后将该 DataFrame 写入 Excel。for obj in column_list:&nbsp; &nbsp; df = pd.DataFrame(df[obj].value_counts().nlargest(2))&nbsp; &nbsp; if df_master is None:&nbsp; &nbsp; &nbsp; &nbsp; df_master = df&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python