Skip to content Skip to sidebar Skip to footer

Is There A Way To Export Pandas Dataframe Info -- Df.info() Into An Excel File?

I have a .csv file locally. I am reading the file with pandas. I want to move the df.info() result into an excel. Looks like df.info().to_excel does not work as it is not supported

Solution 1:

The easiest way for me is to get the same information in dataframes, but separately:

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

Then write to excel as usual.


Solution 2:

to_excel is a method of the DataFrame https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_excel.html and DataFrame.info() doesn't return a DataFrame

You can write the info to a text file like so:

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)

You can modify this code by removing last two lines and parsing the s variable and creating a DataFrame out of it (in the way you would like this to appear in the excel file) and then use the to_excel() method.


Solution 3:

I agree with @yl_low but you could have a more elegant solution as shown:

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", "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_counts

Post a Comment for "Is There A Way To Export Pandas Dataframe Info -- Df.info() Into An Excel File?"