#python #pandas
#python #pandas
Вопрос:
Я ищу функциональность в python, эквивалентную регистру в SQL. В принципе, у меня есть данные категории в моем фрейме данных, я хочу преобразовать что-то вроде приведенного ниже.
Case when Column='X' then 'A' when Column='Y' then 'B' End.
Есть ли какая-либо эквивалентная функциональность в Python?
Комментарии:
1. Вы имеете в виду, что ищете функциональность в Pandas?
2. Используйте
dictionary
для сопоставления и замените его
Ответ №1:
Вы можете использовать встроенную функцию pandas ‘replace’, предоставляющую словарь, где key — это метка для замены, а value — метка для замены:
df =pd.DataFrame({'Data': [1, 2, 3, 4, 5],
'Labels': ['X', 'Y', 'Y', 'X', 'Y']})
df['Labels'] = df['Labels'].replace({'X': 'A', 'Y': 'B'})
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas .DataFrame.replace.html
Редактировать:
Для более подробной замены, если вы знаете точную строку, которую хотите заменить, вы можете просто написать, как указано выше, например, {‘BHK Apartment’: Apartment’}. В противном случае, если вы хотите заменить любую строку, содержащую подстроку, например, ‘Villa’, вы можете использовать регулярное выражение:
df =pd.DataFrame({'Data': [4, 4, 2],
'Labels': ['BHK Apartment', 'BHK Villa', 'BHK PentHouse']})
df['Labels'] = df['Labels'].replace({r'.*Apartment$': 'Apartment', r'.*Villa$': 'Villa', r'.*PentHouse$': 'PentHouse'}, regex=True)
Комментарии:
1. Могу ли я вместо сравнения apple с apple заменить соответствующий набор символов другой строкой? Например, исходными данными являются {4 BHK Квартира, 4 BHK вилла, 2 BHK пентхаус}, а целевые данные, которые я хотел, — {Квартира, вилла, пентхаус}. Существует много разных типов домов, я хотел классифицировать их как {Квартира, вилла, пентхаус, студия}.