Нулевой кадр данных в статистической функции

#python #pandas #dataframe #nan

Вопрос:

У меня возникла проблема с функцией извлечения основной статистики из фрейма данных: медиана, std, эксцесс и т. Д.

Он продолжает возвращать значение null, и я не могу понять, почему. Мой код выглядит следующим образом:

 import pandas as pd  df = pd.read_excel("file.xlsx")  def estatistics_from_df(df):  df_stats = pd.DataFrame()  df_stats['Colunas'] = df.columns  df_stats['Tipos'] = df.dtypes  df_stats['Count'] = df.count()  df_stats['Unique'] = df.nunique()  df_stats['Nulos'] = df.isnull().sum()  df_stats['Min'] = df.min()  df_stats['Max'] = df.max()  df_stats['Mean'] = df.mean()  df_stats['Median'] = df.median()  df_stats['Std'] = df.std()  df_stats['Variance'] = df.var()  df_stats['Kurtosis'] = df.kurtosis()  df_stats['Skewness'] = df.skew()  df_stats['Entropy'] = df.nunique()  df_stats['Missing'] = df.isnull().sum()  return df_stats  df_stats = estatistics_from_df(df)  

Конечный кадр данных-это:

 Colunas Tipos Count Unique Nulos Min Max Mean Median Std Variance Kurtosis Skewness Entropy Missing 0 ID NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1 Min NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2 End NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  

Исходный кадр данных является:

 ID Min End 0 46 2020-01-31 2021-07-15 1 115 2020-09-05 2020-11-25 2 126 2021-10-04 2022-10-03 3 327 2021-07-24 2023-05-27 4 375 2021-06-10 2021-06-17 ```  

Ответ №1:

Каждая из ваших статистических функций возвращает ряд с индексом в качестве имен столбцов фрейма данных. Поэтому вам следует установить индекс в первой строке вашей функции.

Попробуй:

 def estatistics_from_df(df):  df_stats = pd.DataFrame(index=df.columns)  df_stats['Colunas'] = df.columns  df_stats['Tipos'] = df.dtypes  df_stats['Count'] = df.count()  df_stats['Unique'] = df.nunique()  df_stats['Nulos'] = df.isnull().sum()  df_stats['Min'] = df.min()  df_stats['Max'] = df.max()  df_stats['Mean'] = df.mean()  df_stats['Median'] = df.median()  df_stats['Std'] = df.std()  df_stats['Variance'] = df.var()  df_stats['Kurtosis'] = df.kurtosis()  df_stats['Skewness'] = df.skew()  df_stats['Entropy'] = df.nunique()  df_stats['Missing'] = df.isnull().sum()  return df_stats.reset_index(drop=True)  gt;gt;gt; estatistics_from_df(df)   Colunas Tipos Count Unique Nulos Min  0 ID int64 5 5 0 46  1 Min datetime64[ns] 5 5 0 2020-01-31 00:00:00  2 End datetime64[ns] 5 5 0 2020-11-25 00:00:00    Max Mean Median Std Variance  0 375 197.8 126.0 144.175934 20786.7  1 2021-10-04 00:00:00 NaN NaN 256 days 13:26:52.018691364 NaN  2 2023-05-27 00:00:00 NaN NaN 376 days 07:10:06.345801880 NaN    Kurtosis Skewness Entropy Missing  0 -2.592627 0.456711 5 0  1 NaN NaN 5 0  2 NaN NaN 5 0   

Комментарии:

1. Спасибо, чувак! В конце концов, это было довольно просто.

2. Рад помочь! И *женщина 🙂