Добрый день. Я пытаюсь сделать относительно простую вещь, но не могу понять, что не так. У меня есть два фрейма данных: df и df2. Каждый фрейм данных имеет столбец «Аккаунт», содержащий 5-значный код для клиента и «Имя клиента» с его полным именем. Я хочу l oop через уникальные значения «Account» и получить соответствующее значение «Client Name». Код ниже работал отлично:
for x in df['Account'].unique():
worksheet.write(row, 4, df.loc[df[df['Account'] == x].index[0], 'Client Name'])
Однако позже мне пришлось объединить 2 кадра данных, поэтому я использовал concat
modified_df = pd.concat([pd.concat([df['Account'], df2['Account']]),
pd.concat([df['Client Name'], df2['Client Name']])], axis=1)
И, что удивительно, когда я заменил df на modify_df, он перестал работать. Pycharm выделяет 'lo c' с советом: 'Неразрешенная ссылка на атрибут' loc 'для класса' type '
И когда я запускаю код, возникает следующая ошибка:' TypeError: невозможно преобразовать серию в класс 'float ''
Я проверил, что df и updated_df являются pandas классом данных
Ниже приведены примеры данных
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([['A', 'Company A'], ['B', 'Company B'], ['A', 'Company A']]),columns=['Account', 'Client Name'])
df2 = pd.DataFrame(np.array([['C', 'Company C'], ['B', 'Company B'], ['A', 'Company A']]),columns=['Account', 'Client Name'])
modified_df = pd.concat([pd.concat([df['Account'], df2['Account']]),
pd.concat([df['Client Name'], df2['Client Name']])], axis=1)
То, что я ожидаю получить, это список "Компания A, Компания B, Компания C "
Обновление Играя с приведенными выше примерами данных, я заметил, что конкрированные указания df несколько не уникальны. У меня есть два набора (0, 1, 2) индикаторов ... Предположение, что это root моей проблемы.