2015-11-21 6 views
2

Я пытаюсь создать dataframe, используя результаты комбинаторики.
Проблема в том, что форматирование строки выходит смешно. Я надеюсь, что кто-то может вести меня к тому, что я делаю неправильно.Формат строки фрейма Python

Ошибка:

Traceback (most recent call last): 
2 variables 
    File "/home/jeremy/Desktop/jmpAnalysis/index.py", line 16, in <module> 
"Food Exp", "HH Size" 
    xData = data[[comb]] 
raise KeyError('%s not in index' % objarr[mask]) 
KeyError: '[\'"Food Exp", "HH Size"\'] not in index' 

Код:

import pandas as pd 
import statsmodels.api as sm 
import itertools 

data = pd.read_csv("deaconFoodData.csv") 

for i in range(2,10,1): 
    xCombinations = itertools.combinations(["Food Exp", "HH Size", "HH Inc", "Highest Ed Head", "Age Head", "Shopping Time", "Kid <6", "Kid 6-18", "Eating Healthy"], i) 
    print(str(i) + " variables") 
    for combination in xCombinations: 

     comb = str(combination) 
     comb = comb.replace("(","").replace(")","").replace("'","\"") 
     print(comb) 
     yData = data['Shopping LH'] 
     xData = data[[comb]] 
     #xData = data[str(combination).replace("(","").replace(")","")] 
     print(xData) 
     #y = sm.add_constant() 

UPDATE: ССЫЛКА НА GitHub И CSV https://github.com/deacons2016/DeaconFood

+0

Я не знаю, что находится в deaconFoodData.csv, но вы должны прочитать http://pandas.pydata.org/pandas-docs/stable/dsintro.html#indexing-selection –

ответ

0

Это очень трудно ответить, не зная, что в ваших входных данных. Без входных данных или других вещей, проверка приведет к догадке, что вы хотите сделать:

data[comb] 

вместо:

data[[comb]] 

Кроме того, если эта комбинация не в ваших входных данных, индексации потому что это провалится. Вам либо нужно поймать KeyError, либо использовать data.get(comb) и проверить возвращаемое значение, чтобы убедиться, что оно действительно.

+0

Спасибо за ваш ответ. Я добавил ссылку github выше с csv –

+0

@JeremyLewallen Код в github, кажется, завершен без ошибки ... –

+0

Я получаю эту ошибку KeyError: '"Food Exp", "HH Size"' –

0

Выяснил это. Я просто преобразовал кортеж в список. x = list (tuple)

+0

Совет: вы можете принять собственный ответ. :) –

+0

Спасибо @TreyHunner - Это заставляет меня ждать за день, прежде чем я смогу его принять. Спасибо за информацию, хотя! –

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