2024-09-29 01:27:09 发布
网友
我有一本字典,想把它转换成数据帧。由于不重要的原因,数据帧必须在空状态下操作之前存在,因此我使用以下代码:
dfResult = pd.DataFrame() d={} d['p1']=123 d['p2']='foo' #d['p3']= [10,10] df = pd.DataFrame(d, index=[0]) #index is irrelevant
我工作得很好,除非其中一个值是一个列表,但出现以下错误:
你知道我怎么解决这个问题吗?在
谢谢
dfResult = pd.DataFrame() d={} d['p1']=123 d['p2']='foo' d['p3']= [10,10] d = {k:[v] if type(v) is list else v for k,v in d.items()} df = pd.DataFrame(d, index=[0]) #index is irrelevant
那就行了
我想您可以指定列名:
d={} d['p1']=123 d['p2']='foo' d['p3']= [10,10] df = pd.DataFrame({'col':d}) print (df) col p1 123 p2 foo p3 [10, 10]
或者可以创建Series:
Series
对我来说,DataFrame构造函数也可以工作,但是列表值被转换成标量:
DataFrame
d={} d['p1']=123 d['p2']='foo' d['p3']= [10,5] df = pd.DataFrame(d) print (df) p1 p2 p3 0 123 foo 10 1 123 foo 5
如果需要列名称是可能的,请使用^{}并按^{}进行转置:
df = pd.DataFrame.from_dict(d, orient='index').T print (df) p2 p3 p1 0 foo [10, 10] 123
或者可以对嵌套的lists使用dict comprehension:
list
print ({k:[v] for k,v in d.items()}) {'p2': ['foo'], 'p3': [[10, 10]], 'p1': [123]} df = pd.DataFrame({k:[v] for k,v in d.items()}) print (df) p1 p2 p3 0 123 foo [10, 10]
那就行了
我想您可以指定列名:
或者可以创建
^{pr2}$Series
:对我来说,
DataFrame
构造函数也可以工作,但是列表值被转换成标量:如果需要列名称是可能的,请使用^{} 并按^{} 进行转置:
或者可以对嵌套的
list
s使用dict comprehension:相关问题 更多 >
编程相关推荐