Как прочитать столбец с другим именем столбца в пандах? - PullRequest
0 голосов
/ 26 сентября 2019

Мне нужно прочитать и обработать множество файлов (например, 100 файлов), в которых один файл идет с именем столбца как «Idass».Другие файлы поставляются с именем столбца «IdassId».После обработки я выбираю несколько столбцов и записываю вывод в excel.

df.to_excel(writer, columns=['Date','IdassId','TankNo','GradeNo','Sales'],sheet_name='sales')

Здесь я пропускаю запись этого отдельного файла, поскольку у него нет имени столбца в качестве 'IdassId'.Он содержит этот конкретный столбец с «Idass».(Я не мог переименовать этот столбец перед обработкой, поскольку это автоматизированный процесс, поступающий из другого процесса).Я попытался переименовать этот столбец с IdassId и попытался записать в Excel.

d = {'Idass': 'IdassId'}
df.rename(columns=d).to_excel(writer, columns=['Date','IdassId','TankNo','GradeNo','Sales'],sheet_name='sales')

, но выше выдает ошибку, так как другие файлы приходят с тем же именем столбца, что и 'idassId'

ValueError: cannot reindex from a duplicate axis

Каксделать это в пандах?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Я предполагаю, что вы объединяете файлы Excel вместе, чтобы это выглядело так, как показано ниже.

   Idass IdassId
0   0.0 NaN
1   1.0 NaN
2   2.0 NaN
3   3.0 NaN
4   4.0 NaN
5   NaN 0.0
6   NaN 1.0
7   NaN 2.0
8   NaN 3.0
9   NaN 4.0

Если бы вы переименовали Idass в IdassId, у вас было бы два столбца с именем IdassId, и это то, чтовызывает вашу ошибку.

Вы сможете заполнить нулевые значения IdassID и получить желаемый результат.

df['IdassId'] = df['IdassId'].where(df['IdassId'].notnull(), df['Idass'])
df.drop('Idass', axis=1, inplace=True)

    IdassId
0   0.0
1   1.0
2   2.0
3   3.0
4   4.0
5   0.0
6   1.0
7   2.0
8   3.0
9   4.0
0 голосов
/ 26 сентября 2019

Похоже, что ваш определенный d {} пытается переименовать Idass в IdassId.Я думаю, что ваш ключ: значение пары переключается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...