Используйте функцию df.rename()
и обратитесь к столбцам, которые нужно переименовать. Не все столбцы необходимо переименовать:
df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'})
# Or rename the existing DataFrame (rather than creating a copy)
df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True)
Вы просматриваете какой-то декомпилированный код - в частности, то, что было создано компилятором.
Компилятор использует <>
(это деталь реализации), поскольку он действителен для CLR идентификатор для начала с такими символами, он недействителен в C # - поэтому гарантируется, что имя не будет конфликтовать с любыми именами в коде C #.
почему компилятор сгенерировал это код меняется - это может быть реализация лямбда или итератора или асинхронного блока и, возможно, некоторые другие причины.
И, надеюсь, на другую часть вашего вопроса также ответят - есть a .
перед ним по обычным причинам - отделить части пространства имен или, более вероятно, в этом случае отделить имя вложенного класса от имени охватывающего класса.
Используйте этот ответ Эрика Липперта для декодирования имен, таких как <>c__DisplayClass0
. Согласно таблице, приведенной в ответе, вы смотрите на класс анонимного метода закрытия. Не полагайтесь на то, что это всегда будет правдой в будущем, это детали реализации, подлежащие изменению в любое время.
Как указывали другие, вы видите имя, сгенерированное компилятором, который намеренно не юридический C #, так что никто не может случайно (или преднамеренно!) вызывать имя конфликт.
Причина, по которой генерируется это имя, состоит в том, что:
class C
{
void M()
{
int x = 1;
Func<int, int> f = y=>x+y;
}
}
Сгенерировано компилятором, как если бы вы написали:
class C
{
private class DisplayClass
{
public int x;
public int AnonymousMethod(int y)
{
return this.x + y;
}
}
void M()
{
C.DisplayClass d = new C.DisplayClass();
d.x = 1;
Func<int, int> f = d.AnonymousMethod;
}
}
За исключением что, конечно, все имена намеренно искалечены, как вы обнаружили.
Причина, по которой класс закрытия называется «DisplayClass», немного неудачна: это жаргон, используемый командой отладчика для описания класса, который имеет особое поведение при отображении в отладчике. Очевидно, что мы не хотим отображать «x» в качестве поля класса с невозможным именем при отладке вашего кода; скорее, вы хотите, чтобы он выглядел как любая другая локальная переменная. В отладчике есть специальная передача для обработки этого класса отображения. Вероятно, это, вероятно, должно было называться «ClosureClass», чтобы было легче читать разборку.