2016-03-25 2 views
0

У меня есть df с столбцом префикса значений: {H, HR, S и т. Д.}. Я хотел бы отредактировать значения, чтобы он возвращал h для всех H, HR, HJ, HC и s для всех S, SR, SJ SC. Данные herePandas: Как редактировать значения в столбце

session prefix number disposition  catcode  bill 
0 114  H 131  support  J6200 H131 
1 114  H 138  oppose L1100 H138 
2 114  H 140  support  NaN  H140 
3 114  H 140  oppose J7500 H140 
4 114  H 140  support  NaN  H140 

Я побежал следующие из MaxU:
df.replace ({ 'префикс': {г '^ (H | HR | HC | HJ |) $': 'ч', r '^ (S | SR | SC | SJ |) $': 's'}}, regex = True, inplace = True)

и он работает! Задача решена!

session  prefix number disposition  catcode 
0 114  h 131  support  J6200 
1 114  h 138  oppose L1100 
2 114  h 140  support  NaN 
+1

Я не мог найти никаких 'H *' и 'S *' в вашем файл. Вы хотите заменить все префиксы, начинающиеся с «H» на «H», и одинаковые для всех префиксов, начинающихся с 'S' ->' S'? – MaxU

+0

Да! Спасибо, что посмотрели. Я думал учиться на примере из примера. Я обновил вопрос с вашим предложением. –

+0

Пожалуйста, уточните мой обновленный ответ – MaxU

ответ

1

Попробуйте это:

df.replace({'prefix': {r'^(H|HR|H\*)$': 'h', r'^(S|SR|S\*)$': 's'}}, regex=True, inplace=True) 

, если вы хотите иметь только первую букву вашей колонки приставки:

df.prefix.str[0] 

так, чтобы заменить его с первой буквой в нижнем регистре:

df.prefix = df['prefix'].str[0].str.lower() 
+0

@MichaelPerdue, пожалуйста, определите 'некоторые случаи' – MaxU