Создание фрейма данных из словаря с массивами различной длины
Представленная задача состоит в том, чтобы сгенерировать фрейм данных со столбцами, состоящими из массива numpy различной длины значения, извлеченные из словаря. Чтобы добиться этого, давайте рассмотрим решение с использованием Python.
В Python 3.x и выше можно использовать следующий фрагмент кода:
import pandas as pd import numpy as np # Define a dictionary with key-value pairs representing numpy arrays d = { "A": np.random.randn(10), "B": np.random.randn(12), "C": np.random.randn(8) } # Create a dataframe by converting each key-value pair to a series df = pd.DataFrame( dict([ (k, pd.Series(v)) for k, v in d.items() ]) ) # Display the resulting dataframe print(df)
Этот код создает кадр данных со столбцами «A», «B» и «C», каждый из которых содержит соответствующие значения массива numpy из словаря. Если массивы имеют разную длину, он автоматически выравнивает их, расширяя более короткие массивы значениями NaN в качестве заполнения.
В Python 2.x требуется небольшая модификация:
import pandas as pd import numpy as np # Define a dictionary with key-value pairs representing numpy arrays d = { "A": np.random.randn(10), "B": np.random.randn(12), "C": np.random.randn(8) } # Create a dataframe by converting each key-value pair to a series df = pd.DataFrame( dict([ (k, pd.Series(v)) for k, v in d.iteritems() ]) ) # Display the resulting dataframe print(df)
В Python 2.x функция iteritems() используется вместо items() для перебора пар ключ-значение в словаре.
Используя этот подход, вы можете удобно создавать фреймы данных со столбцами, содержащими массивы разной длины, гарантируя правильное выравнивание и обработку данных.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3