2015-11-03 2 views
5

У меня есть серия Pandas из 10000 строк, которая заполнена одним алфавитом, начиная с A до Z. Однако я хочу создать фиктивные рамки данных только для A, B и C, используя Pandas get_dummies. Как мне обойти это?Pandas - Получить макеты только для определенных значений

Я не хочу получать манекены для всех значений строк в столбце, а затем выбирать конкретные столбцы, так как столбец содержит другие избыточные данные, которые в конечном итоге приводят к ошибке памяти.

+0

Так вы желая фильтр ФР первый или вы хотите 'get_dummies' только для тех значений? – EdChum

+0

Я хочу get_dummies только для этих значений. – ExtremistEnigma

+0

Примечание: вы можете решить множество проблем с памятью с параметром 'sp_se = True'' get_dummies'. –

ответ

1

попробовать это:

# create mock dataframe 
df = pd.DataFrame({'alpha':['a','a','b','b','c','e','f','g']}) 

# use replace with a regex to set characters d-z to None 
pd.get_dummies(df.replace({'[^a-c]':None},regex =True)) 

выход:

alpha_a alpha_b  alpha_c 
0 1 0 0 
1 1 0 0 
2 0 1 0 
3 0 1 0 
4 0 0 1 
5 0 0 0 
6 0 0 0 
7 0 0 0 
+0

Что делать, если мои категориальные переменные были случайными строками, скажем, такими именами, как Джон, Джейн и Мэри, а не a, b и c? – ExtremistEnigma

+0

вы можете использовать список имен, которые вы хотите исключить. 'Pd.get_dummies (df.replace ([ 'Том', 'Бен'], [None, None]))' – JAB

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