是否可以执行以下操作(dict是第一行索引的数据):
dict={'col1':1,'col2':[1,2],'col3':'str'}
nm=pd.DataFrame(dict,index=['new line'])
我希望收到一个类似的数据框:
nm
col1 col2 col3
new line 1 [1,2] str
使用类型列表的col2中的值,但我收到以下错误:
ValueError:无法将shape(2)中的输入数组广播为形状 (1)
谢谢!
答案 0 :(得分:1)
你错过了一个[]
:
dict={'col1':1,'col2':[[1,2]],'col3':'str'}
nm=pd.DataFrame(dict,index=['new line'])
print nm
col1 col2 col3
new line 1 [1, 2] str
或者:
dict={'col1':[1],'col2':[[1,2]],'col3':['str']}
nm=pd.DataFrame(dict,index=['new line'])
print nm
col1 col2 col3
new line 1 [1, 2] str
如果您有更多值,则需要将列表用作Series
的每列,因此如果您需要列中的list
,则必须使用list
lists
:
dict={'col1':[1, 2],'col2':[[1,2], [3,5]],'col3':['str', 'str1']}
nm=pd.DataFrame(dict,index=['new line', 'new line1'])
print nm
col1 col2 col3
new line 1 [1, 2] str
new line1 2 [3, 5] str1
将非标量值存储为数据元素是不明智的,并且通常您会失去对向量化方法的访问权限,因为np
和pandas
没有向量化方法附加到list
中矢量化的方式。 link