2014-10-27 7 views
0

Я экспериментировал с пандами, и, хотя я выяснил, как использовать его для чтения данных, я наткнулся на некоторые проблемы с написанием моего вывода и нуждаюсь в вашей помощи!Использование функции Pandas to_csv

Это мой упрощенный код:

import pandas as pd 

df = pd.DataFrame("prices", "product1", "product2", "product3") 
prices = df.prices 
product1 = df.product1 
product2 = df.product2 
product3 = df.product3 

prices = ["Price Option 1", "Price Option 2", "Price Option 3"] 
product1 = [1,2,3] 
product2 = [4,5,6] 
product3 = [7,8,9] 

df.to_csv("output.csv") 

ожидаемый выход должен был быть что-то вроде:

prices product1 product2 product3 
price1  1   2   3 
price2  4   5   6 
price3  7   8   9 

Но вместо этого я получаю эту ошибку:

Traceback (most recent call last): 
    File "output.py", line 3, in <module> 
    df = pd.DataFrame("prices", "product1", "product2", "product3") 
    File "C:\Python27\lib\site-packages\pandas-0.14.1-py2.7-win32.egg\pandas\core\frame.py", line 194, 
in __init__ 
    dtype = self._validate_dtype(dtype) 
    File "C:\Python27\lib\site-packages\pandas-0.14.1-py2.7-win32.egg\pandas\core\generic.py", line 10 
8, in _validate_dtype 
    dtype = np.dtype(dtype) 
TypeError: data type "product3" not understood 

И я «Не совсем уверен, почему ... Помощь очень ценится!

+0

Ваш код не запускается, возникает проблема с тем, как вы строите df, не пробуйте написать его в csv. Является ли df вы пытаетесь создать то, что вы показали как ожидаемый результат? – EdChum

+0

Привет, спасибо за ваш ответ. Да, это не работает, что ожидаемый результат был тем, что я думал, что мой код будет работать. Кажется, мне нужна какая-то проверка данных, которая должна произойти, но мне трудно найти, как это сделать, я не могу найти учебники, посвященные этой проблеме. – ploo

ответ

1

Вы строите свой ФР неправильно, то следующий будет работать:

In [3]: 

df = pd.DataFrame(columns=["prices", "product1", "product2", "product3"]) 
df.prices = ["Price Option 1", "Price Option 2", "Price Option 3"] 
df.product1 = [1,2,3] 
df.product2 = [4,5,6] 
df.product3 = [7,8,9] 
df 
Out[3]: 
      prices product1 product2 product3 
0 Price Option 1   1   4   7 
1 Price Option 2   2   5   8 
2 Price Option 3   3   6   9 

Как бы положить ваши данные в Словаре:

In [4]: 

data = {'prices':["Price Option 1", "Price Option 2", "Price Option 3"], 'product1':[1,2,3], 'product2':[4,5,6], 'product3':[7,8,9]} 
pd.DataFrame(data) 
Out[4]: 
      prices product1 product2 product3 
0 Price Option 1   1   4   7 
1 Price Option 2   2   5   8 
2 Price Option 3   3   6   9 

Вы можете написать CSV как нормальный

+0

Ahh okay Я вижу там небольшую разницу, как правильно определить столбец в качестве аргумента. Спасибо! – ploo

+1

Я думаю, что ваше фундаментальное недоразумение заключается в том, как назначать значения столбцам, это должно быть либо атрибутом, либо ключом, поэтому 'df.product1' или' df ['product1'] ' – EdChum

Смежные вопросы