有没有办法将Pandas数据框信息--df.info()导出到Excel文件中?

8yoxcaq7  于 2022-11-20  发布在  其他
关注(0)|答案(5)|浏览(166)

我在本地有一个.csv文件。我正在阅读带有Pandas的文件。我想把df.info()的结果移到excel中。看起来df.info().to_excel不起作用,因为它不受支持。有什么方法可以做到这一点吗?
我尝试了df.info().to_excel

import pandas as pd
from openpyxl.workbook import Workbook
pd.read_csv("file.csv",sep='|', error_bad_lines=False)
writer = pd.ExcelWriter('output.xlsx')
df.info()
df.info().to_excel(writer,sheet_name='info')

我想在Excel的单个选项卡中显示 Dataframe 信息输出。

jei2mxaa

jei2mxaa1#

对我来说,最简单的方法是在 Dataframe 中获得相同的信息,但要分开:

df_datatypes = pd.DataFrame(df.dtypes)
df_null_count = df.count()

然后像往常一样写excel。

d5vmydt9

d5vmydt92#

to_excel是DataFrame https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_excel.html的一个方法,并且DataFrame.info()不返回DataFrame
您可以将信息写入文本文件,如下所示:

import io
buffer = io.StringIO()
df.info(buf=buffer)
s = buffer.getvalue()
with open("df_info.txt", "w", encoding="utf-8") as f:
    f.write(s)

您可以修改此代码,方法是删除最后两行并解析s变量,然后从中创建一个DataFrame(以您希望在Excel文件中显示的方式),然后使用to_excel()方法。

zzwlnbp8

zzwlnbp83#

我同意@yl_low的观点,但您可以使用更简洁的解决方案,如下所示:

def get_dataframe_info(df):
    """
    input
       df -> DataFrame
    output
       df_null_counts -> DataFrame Info (sorted)
    """

    df_types = pd.DataFrame(df.dtypes)
    df_nulls = df.count()
    
    df_null_count = pd.concat([df_types, df_nulls], axis=1)
    df_null_count = df_null_count.reset_index()
    
    # Reassign column names
    col_names = ["features", "types", "non_null_counts"]
    df_null_count.columns = col_names
    
    # Add this to sort
    df_null_count = df_null_count.sort_values(by=["null_counts"], ascending=False)
    
    return df_null_count
disbfnqx

disbfnqx4#

你可以在Python 3中做到这一点。

pd.DataFrame({"name": train.columns, "non-nulls": len(train)-train.isnull().sum().values, "nulls": train.isnull().sum().values, "type": train.dtypes.values}).to_excel("op.xlsx")
tjvv9vkg

tjvv9vkg5#

只有一行代码(无非空列);

df.dtypes.reset_index(name='Dtype').rename(columns={'index' :  'Column'}).to_excel(pd.ExcelWriter('Name.xlsx'), 'info')

相关问题