Заполнить по умолчанию 0 при создании DataFrame в Pandas - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть входной список строк в списке с возможно различной длиной для списка.

d = {'b': [2,3], 'a': [1]}

когда я делаю: df = pd.DataFrame(data=d), я вижу ValueError:Все массивы должны быть одинаковой длины

Вопрос : Как заполнить пропущенные значения значением по умолчанию (например, 0) при создании df?


Причина создания df состоит в том, чтобы получить конечный результат: {'b': 3}

, тогда как 3 - это максимум всех чисел в списках.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019
d = {'b': [2,3], 'a': [1]}
df = pd.DataFrame({ k:pd.Series(v) for k, v in d.items() })

Это даст следующий вывод.

a  b
0  1.0  2
1  NaN  3
0 голосов
/ 12 февраля 2019

Вы можете использовать DataFrame.from_dict, установив orient в index, чтобы ключи словаря использовались в качестве индексов, а для пропущенных значений было установлено значение NaN.Затем просто заполните NaNs с помощью .fillna и транспонируйте, чтобы установить ключи в виде столбцов:

pd.DataFrame.from_dict(d, orient='index').fillna(0).T

    b    a
0  2.0  1.0
1  3.0  0.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...