pandas.DataFrame.from_records изменяет имена столбцов - PullRequest
0 голосов
/ 02 ноября 2018

Я набираю эту строку:

df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor("file1", ['colA','colB'])
#this line reads a file with the specified columns.

Результат переименовывает первый столбец в 0, а другой в 1.

Если вы видите в документации. Существует дополнительный columns параметр.

Имена столбцов для использования. Если переданные данные не имеют связанных имен с ними этот аргумент предоставляет имена для столбцов. Иначе этот аргумент указывает порядок столбцов в результате.

Проблема в том, что весь код находится в цикле, и указание этого столбца невозможно, поскольку в каждом цикле читаются разные столбцы. Как сохранить начальные столбцы, не поворачивая их в 0 и 1.

UPDATE

dict1 = {'file_name_1': ['on_column', 'another_column'], 'file_name_2': ['again_column']}
for k, v in dict1.items():
    df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor(k, v))
    df['count_of_a_column']=[df['colA'].value_counts().loc[x] for x in df['colA']]

#When the df is made the column names are already ruined. 
#They are called 0 and 1 if they are two. Thus the last line of code won't 
#find the columns that imported.

1 Ответ

0 голосов
/ 02 ноября 2018

Метки столбцов могут быть изменены. Просто назовите ваши столбцы явно после того, как вы создали свой фрейм данных:

for k, v in dict1.items():
    df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor(k, v))
    df.columns = v
    df['count_of_a_column']=[df['colA'].value_counts().loc[x] for x in df['colA']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...