[英]DataFrame.from_dict generating columns and rows Pandas python
I have this following code我有以下代码
df_output ={'transport':[transport],'model':[model],fuel':[fuel],'engine':[engine],'color':[color],'year':[year],'value':[value],'
number':[number],'manufacturer': [manufacturer],}
I pass df_output
to be able to manipulate in DataFrame.from_dict
我通过df_output
以便能够在DataFrame.from_dict
中进行操作
df = pd.DataFrame.from_dict(data=df_output, orient='index', columns=['transport', 'Model', 'Fuel', 'Engine', 'Color', 'Year', 'Value', 'Number','Manufacturer'])
i'm following the pandas documentation我正在关注pandas文档
he tells me to use orient = 'index'
so that I can create columns manually, then I pass the columns columns=['transport', 'Model', 'Fuel', 'Engine', 'Color', 'Year', 'Value', 'Number','Manufacturer']
他告诉我使用orient = 'index'
以便我可以手动创建列,然后我传递列columns=['transport', 'Model', 'Fuel', 'Engine', 'Color', 'Year', 'Value', 'Number','Manufacturer']
when i will execute my code it generates me this error当我将执行我的代码时,它会生成此错误
Traceback (most recent call last):
File "C:\Users\Suporte\Desktop\Captura TJ\autonomation\Discovery.py", line 192, in <module>
Scrape(user_tj, password_tj, pesquisa_unica)
File "C:\Users\Suporte\Desktop\Captura TJ\autonomation\Discovery.py", line 54, in __init__
self.single_search_csv()
File "C:\Users\Suporte\Desktop\Captura TJ\autonomation\Discovery.py", line 182, in single_search_csv
df = pd.DataFrame.from_dict(data=df_output, orient='index', columns=['transport', 'Model', 'Fuel', 'Engine', 'Color', 'Year', 'Value', 'Number','Manufacturer'])
File "C:\Users\Suporte\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 1190, in from_dict
return cls(data, index=index, columns=columns, dtype=dtype)
File "C:\Users\Suporte\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 450, in __init__
arrays, columns = to_arrays(data, columns, dtype=dtype)
File "C:\Users\Suporte\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\construction.py", line 464, in to_arrays
return _list_to_arrays(data, columns, coerce_float=coerce_float, dtype=dtype)
File "C:\Users\Suporte\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\construction.py", line 503, in _list_to_arrays
raise ValueError(e) from e
ValueError: 9 columns passed, passed data had 1 columns
after everything goes well i will generate a csv一切顺利后,我将生成一个 csv
df.to_csv('file.csv', sep = ';', encoding = 'iso-8859-1', mode='a', index=False
) df.to_csv('file.csv', sep = ';', encoding = 'iso-8859-1', mode='a', index=False
)
who can help me thank you:)谁能帮我谢谢:)
When you create df_output , drop square brackets surrounding each value.创建df_output时,请在每个值周围放置方括号。
I assume that transport , model and so on are lists.我假设transport , model等是列表。 The way you initially wrote, you unnecessarily create another set of lists, each containg only one element (a list).您最初编写的方式是不必要地创建另一组列表,每个列表仅包含一个元素(列表)。
So change the instruction to:所以将指令更改为:
df_output = {'transport': transport, 'model': model, ...}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.