2016-12-20 3 views
1

У меня есть dataframe под названием ro, у которого есть все претензии к автомобильным частям. Теперь я хочу создать функцию с именем part_dataframe, где я могу подмножить исходный ro в новый dataframe только с определенной частью, пусть говорят, компрессор с именем подмножестве как comp_claimsПроблема, вызывающая функцию

Мой функции:

def part_dataframe(first_frame, subset, type_number, number): 
    subset = first_frame.loc[first_frame[type_number] == number] 
    subset = subset.reset_index(drop=True) 
    subset['word'] = subset.Comment.str.split().apply(lambda x: pd.value_counts(x).to_dict()) 

Когда я попытался вызвать функцию:

part_dataframe(ro, comp_claims, 'Part No.', '97701') 

я получаю следующее сообщение об ошибке:

--------------------------------------------------------------------------- 
NameError         Traceback (most recent call last) 
<ipython-input-17-65cf8428af26> in <module>() 
----> 1 part_dataframe(ro, comp_claims, 'Part No.', '97701') 

NameError: name 'comp_claims' is not defined 

Как я могу исправить это? Спасибо заранее

+3

Вы уверены, что вы назначили значение 'comp_claims' перед вызовом' функцию part_dataframe'? Проверьте правописание и области действия. – MYGz

+1

Почему функция немедленно перезаписывает 'subset',' comp_claims', который вы хотите передать? Должно ли это быть возвращаемым значением? –

+0

Можете ли вы показать полный код, в том числе, где вы определяете 'comp_claims'? – IanS

ответ

2
ro = pd.DataFrame(
    {'Part No.': np.arange(10)} 
) 

def part_dataframe(first_frame, type_number, number): 
    return first_frame.loc[first_frame[type_number] == number] 

subset = part_dataframe(ro, 'Part No.', 3) 
subset 

enter image description here

+0

Он отлично работал @piRSquared –

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