Я пытаюсь использовать панды для переименования столбца в файлах CSV.Я хочу использовать словарь, поскольку иногда столбцы с одинаковой информацией могут называться по-разному (например, mobile_phone и phone вместо phone).
Я хочу переименовать первый экземпляр phone.Вот пример, который мы надеемся объяснить подробнее.
Вот оригинал в этом примере:
0 name mobile_phone telephone
1 Bob 12364234234 12364234234
2 Joe 23534235435 43564564563
3 Jill 34573474563 78098080807
Вот что я хочу сделать:
0 name phone telephone
1 Bob 12364234234 12364234234
2 Joe 23534235435 43564564563
3 Jill 34573474563 78098080807
Вот код, который я попробовал:
phone_dict = {
'phone_number': 'phone',
'mobile_phone': 'phone',
'telephone': 'phone',
'phones': 'phone',
}
if 'phone' not in df.columns:
df.rename(columns=dict(phone_dict), inplace=True)
if 'phone' not in df.columns:
raise ValueError("What are these peoples numbers!? (Need 'phone' column)")
Я создал словарь с некоторыми возможными именами столбцов и хочу, чтобы они назывались «телефон».Однако, когда я запускаю этот код, он поворачивает столбцы, чтобы изменить второй столбец вместо первого, который соответствует ключу в словаре.Я хочу, чтобы он остановился после совпадения с первым столбцом, который встречается в CSV.
Вот что происходит:
0 name mobile_phone phone
1 Bob 12364234234 12364234234
2 Joe 23534235435 43564564563
3 Jill 34573474563 78098080807
Если существует, например, третий столбец, которыйсоответствует словарю, который они превращают в «телефон», что опять же не то, что я хочу.Я пытаюсь заставить его просто изменить первый соответствующий столбец.
Вот пример того, что происходит, когда я добавляю третий столбец.Это идет от:
0 name mobile_phone telephone phone_1
1 Bob 12364234234 12364234234 36346346311
2 Joe 23534235435 43564564563 34634634623
3 Jill 34573474563 78098080807 34634654622
К этому:
0 name phone phone phone
1 Bob 12364234234 12364234234 36346346311
2 Joe 23534235435 43564564563 34634634623
3 Jill 34573474563 78098080807 34634654622
Но я хочу, чтобы это было так:
0 name phone telephone phone_1
1 Bob 12364234234 12364234234 36346346311
2 Joe 23534235435 43564564563 34634634623
3 Jill 34573474563 78098080807 34634654622
Любые советы или подсказки, чтобы остановить его второйизменить второе совпадение словаря вместо первого или всех из них?
До того, как у меня появилась куча утверждений elif, но я думал, что словарь будет чище и легче для чтения.