我有一个字典列表,该字典将被转换为数据框。当我尝试传递column参数时,输出值都是nan。
# This code does not result in desired output
l = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]
pd.DataFrame(l, columns=['c', 'd'])
c d
0 NaN NaN
1 NaN NaN
# This code does result in desired output
l = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]
df = pd.DataFrame(l)
df.columns = ['c', 'd']
df
c d
0 1 2
1 3 4
为什么会这样?
答案 0 :(得分:8)
因为如果在checkboxSelection
构造函数中创建了键的字典传递列表,则新的列名:
DataFrame
如果字典键中不存在某些值的传递列参数,则从字典中过滤出列,对于不存在的值,将创建缺少值的列,其值的顺序类似于列名列表中的值:
l = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]
print (pd.DataFrame(l))
a b
0 1 2
1 3 4
因此,如果需要其他列名称,则需要重命名它们或像在第二个代码中那样设置一个新列。