‘Mean’ не работает для фрейма данных Pandas, чтение из Pickle с 16 x 200 000 наблюдениями

#python #pandas #dataframe #statistics

#python #pandas #фрейм данных #Статистика

Вопрос:

У меня есть файл pickle размером 36,9 МБ, это файл данных, который содержит 16 переменных с 239 427 наблюдениями.

(На самом деле у меня есть несколько других файлов pickle, каждый из которых содержит 16 переменных, варьирующихся от 6,8 МБ до 36,9 МБ в зависимости от количества наблюдений. Но, похоже, у меня проблема только с самым большим файлом…что наводит меня на мысль, что файл может быть слишком большим …)

Я использую Pandas в Python для чтения в pickle, поэтому:

 df = pd.read_pickle('filename.pickle')
  

Меня интересует описательная статистика для этого фрейма данных. Итак, я использую функцию описания фрейма данных pandas, как так:

 df.describe()
  

Функция работает для всех моих файлов pickle, и в качестве выходных данных я получаю ‘count’, ‘mean’, ‘std’, ‘min’, ‘max’ … и т.д.

Однако, если я попытаюсь использовать функцию ‘mean’ для фрейма данных из самого большого файла pickle, таким образом:

 df.mean()
  

Мой ноутбук на Python долгое время «занят», а затем, похоже, истекает время ожидания.

Кто-нибудь может помочь мне понять, почему это может быть так? Я очень смущен.

Кажется, что функция std работает просто отлично:

 df.std()
  

В конечном счете, я хочу вычислить относительное стандартное отклонение для каждой переменной (поэтому мне нужны среднее значение и std для каждой переменной). И я планирую выполнить итерацию по списку фреймов данных.

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

1. возможно ли загрузить файл pickle? это также может быть проблема с данными

2. Каков размер файла pickle?

3. @hacker315 размер файла pickle составляет 37 МБ

4. @aditya извините, я не могу загрузить это прямо сейчас

5. @AdityaSantoso , я записал файл в .csv и обнаружил, что в наборе данных было несколько данных «NaN». Как только я удалил данные NaN, это, казалось, устранило проблему. Странно, что .describe() работает в этом случае, но .std() этого не делает…