Вы можете использовать заполнители в своем начальном словаре.
>>> data={'a0':[[1,2,3],[]],'a1':[[5,6,2],[2,3]],'f1':[[2,5],[]]}
>>> import pandas
>>> df = pandas.DataFrame
>>> df = pandas.DataFrame()
>>> for x in data:
... df[x]=pandas.Series(data[x],index=None)
...
>>> df
a0 a1 f1
0 [1, 2, 3] [5, 6, 2] [2, 5]
1 [] [2, 3] []
>>>
или использовать None в качестве заполнителя ...
>>> data={'a0':[[1,2,3],None],'a1':[[5,6,2],[2,3]],'f1':[[2,5],None]}
>>> for x in data:
... df[x]=pandas.Series(data[x],index=None)
...
>>> df
a0 a1 f1
0 [1, 2, 3] [5, 6, 2] [2, 5]
1 None [2, 3] None
>>>
Если первое имеет больше индексов, чем вторая вещь, добавленная к df pandas по умолчанию np.nan
, так что это может быть наиболее разумным заполнителем в этом случае.
РЕДАКТИРОВАТЬ: Вы можете индексировать DataFrame перед добавлением любых столбцов.
>>> import pandas as pd
>>> data={'a0':[[1,2,3]],'a1':[[5,6,2],[2,3]],'f1':[[2,5]]}
>>> a = pd.DataFrame().reindex([0,1])
>>> for x in data:
... a[x]=pd.Series(data[x],index=None)
>>> a
a0 a1 f1
0 [1, 2, 3] [5, 6, 2] [2, 5]
1 NaN [2, 3] NaN