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

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

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

How to Create a Pandas DataFrame from a Dictionary with Varying Array Lengths?

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

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

Преодоление несоответствия длины

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

Для этого мы можем преобразовать каждую запись словаря в серию Pandas, одномерный массив, который может легко обрабатывать пропущенные значения. Обернув элементы словаря в выражение генератора и используя конструктор Series, мы можем создать словарь объектов Series.

import pandas as pd
import numpy as np

# Sample data with uneven array lengths
data = {
    'A': np.random.randn(5),
    'B': np.random.randn(8),
    'C': np.random.randn(4)
}

# Convert dictionary items to Series
series_dict = dict((k, pd.Series(v)) for k, v in data.items())

# Create DataFrame from the dictionary of Series
df = pd.DataFrame(series_dict)

Результат:

In [1]: df
Out[1]:
        A         B         C
0  1.162543  1.681243  0.191287
1  0.459621  -0.141198 -0.109864
2  -0.866704 -0.128677  -0.511496
3  1.222436  -0.371449 -0.705894
4  -0.980584  1.255133       NaN
5        NaN -0.351051       NaN
6        NaN  0.443017       NaN
7        NaN -1.053693       NaN

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

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

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

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

Copyright© 2022 湘ICP备2022001581号-3