TypeError: неподдерживаемые типы операндов для +: 'float' и 'str' при использовании вновь созданного списка - PullRequest
0 голосов
/ 26 мая 2020

Я использую внешнюю электронную таблицу Excel для получения списка значений. В настоящее время сценарий отлично работает для того, что я хочу, беря список и делая с ним то, что мне нужно. Я также могу изменить список на другие уже существующие листы и столбцы. Однако, когда я создаю новый столбец (как на существующем, так и на новом листе) и пытаюсь использовать этот список, я получаю следующее сообщение:

TypeError: неподдерживаемые типы операндов для +: 'float' и 'str'

df = pd.read_excel(r'C:/Desktop/List.xlsx', sheet_name='Country Codes')
Countrylist = df['Country'].tolist()

extension = '.xlsx'
Clist = [x + extension for x in Countrylist]
Countries = Clist
df = pd.read_excel(r'C:/Desktop/List.xlsx', sheet_name='Country Codes')
Countrylist = df['CountryA'].tolist()

extension = '.xlsx'
Clist = [x + extension for x in Countrylist]
Countries = Clist

В первом примере я использую уже созданный столбец Country . Во втором примере я использую только что созданный столбец CountryA . Первый пример будет работать отлично, второй пример завершится ошибкой на Clist = [x + extension for x in Countrylist], что приведет к сообщению об ошибке выше. Ниже показан пример двух наборов данных, которые я использую. Это те же данные, скопированные заново. Я попробовал тот же сценарий для кодов стран в столбце B (которые были созданы ранее), и он сработал, поэтому я считаю, что это как-то связано с новыми столбцами.

enter image description here

Кто-нибудь знает, почему я не могу использовать скрипт для вновь созданного столбца (CountryA)?

1 Ответ

2 голосов
/ 26 мая 2020

У вас есть число или NaN значение в столбце CountryA; наверное из Excel автоформатирование пустой ячейки. Вы можете преобразовать весь столбец в строку перед его использованием через:

Countrylist = df['CountryA'].astype(str).tolist()

, а затем запустить остальную часть вашего скрипта.

...