В 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