«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как создать фреймы данных Pandas из словарей с нечетной длиной массива?

Как создать фреймы данных Pandas из словарей с нечетной длиной массива?

Опубликовано 14 ноября 2024 г.
Просматривать:437

How to Construct Pandas DataFrames from Dictionaries with Uneven Array Lengths?

Построение фреймов данных из словарей с массивами разной длины

Обработка словарей с массивами неравной длины в Pandas требует индивидуального подхода. При попытке создать DataFrame, в котором каждый столбец представляет массив в словаре, можно столкнуться с ошибкой ValueError: «Все массивы должны быть одинаковой длины».

Использование объектов серии

Чтобы обойти это В этой проблеме мы используем объекты Series Pandas, которые могут содержать массивы различной длины. Преобразуя каждое значение словаря в серию, мы можем эффективно хранить массивы независимо от их длины. Следующий фрагмент кода демонстрирует этот подход:

import pandas as pd
import numpy as np

# Sample data generated via a reproducible seed
np.random.seed(2023)
data = {k: np.random.randn(v) for k, v in zip("ABCDEF", [10, 12, 15, 17, 20, 23])}

# Convert dictionary values to Series objects
series_dict = {k: pd.Series(v) for k, v in data.items()}

# Create DataFrame using these Series objects
df = pd.DataFrame(series_dict)

Сохранение пропущенных значений

При работе с массивами различной длины часто встречаются пропущенные значения, когда более короткие массивы не могут заполнить оставшиеся ячейки. По умолчанию Pandas заполняет эти пробелы значениями NaN (не числом). Такое поведение сохраняет исходные данные, обеспечивая при этом согласованную структуру для анализа.

Настройка обработки отсутствующих значений

При желании вы можете настроить обработку отсутствующих значений, используя параметр Missing_values ​​в DataFrame( ) конструктор. Например, чтобы заменить пропущенные значения нулями вместо NaN, вы должны указать Missing_values=0, как показано ниже:

df = pd.DataFrame(series_dict, missing_values=0)

Пример вывода

Следующий вывод иллюстрирует DataFrame, созданный с использованием описанного подхода. выше:

print(df)
      A         B         C         D         E         F
0  0.711674 -1.076522 -1.502178 -1.519748  0.340619  0.051132
1 -0.324485 -0.325682 -1.379593  2.097329 -1.253501 -0.238061
2 -1.001871 -1.035498 -0.204455  0.892562  0.370788 -0.208009
3  0.236251 -0.426320  0.642125  1.596488  0.455254  0.401304
4 -0.102160 -1.029361 -0.181176 -0.638762 -2.283720  0.183169
...       ...       ...       ...       ...       ...       ...
18       NaN       NaN       NaN       NaN       NaN       NaN
19       NaN       NaN       NaN       NaN       NaN       NaN
20       NaN       NaN       NaN       NaN       NaN       NaN
21       NaN       NaN       NaN       NaN       NaN       NaN
22       NaN       NaN       NaN       NaN       NaN       NaN
23 rows × 6 columns

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

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3