я в настоящее время отображения и переименования различных строковых значений столбцов в pandas
с помощью этой функции:Панды карта для DataFrame из словаря
df["fundbenchmark"] = df["name"].map(lambda x: "American Express" if "AXP" in x else "Apple" if "AAPL" in x else "Google" if "GOOG" in x else "")
Я, однако сделать это в течение нескольких колонок и для многих различных переименований. Вот еще один столбец с идентичным контентом, поэтому было бы повторительно добавлять туда все компании.
df["subclass"] = df["name"].map(lambda x: "American Express" if "AXP" in x else "Apple" if "AAPL" in x else "Google" if "GOOG" in x else "")
Таким образом, я хотел бы сохранить словарь, как:
companies = {"AXP": "American Express", "AAPL": "Apple", "GOOG": "Google"}
и называют, что для всех случаев, когда мне нужно отобразить названия компании. Как я могу сделать это map
для совпадений в companies
вместо lambda x
?
Текущий DataFrame:
Name
"BULL AXP UN X3 VON"
"BEAR AXP UN X3 VON"
"BULL GOOG UN X5 VON"
"BEAR GOOG UN X5 VON"
"BEAR ABC123 X2 CBZ"
Желаемый результат:
Name Fundbenchmark Subclass
"BULL AXP UN X3 VON" "American Express" "American Express"
"BEAR AXP UN X3 VON" "American Express" "American Express"
"BULL GOOG UN X5 VON" "Google" "Google"
"BEAR GOOG UN X5 VON" "Google" "Google"
"BEAR ABC123 X2 CBZ" "BEAR ABC123 X2 CBZ" "BEAR ABC123 X2 CBZ" #Not in Dictionary
Словарь:
companies = {"AXP": "American Express", "GOOG": "Google"}
Так что если аббревиатура существует в словаре, а затем написать это имя для других столбцов ,
Или, если аббревиатура отсутствует в словаре, дублируйте всю ячейку.
@JohnE К сожалению об этом. Я отредактировал вопрос для большей ясности. – Winterflags
Не стоит беспокоиться, теперь это намного яснее. – JohnE