首页 > 解决方案 > 类型错误:使用新创建的列表时 + 的不支持的操作数类型:'float' 和 'str'

问题描述

我正在使用外部 Excel 电子表格来获取值列表。目前,该脚本可以完美地满足我的需求,获取列表并按照我的需要进行操作。我还可以将列表更改为已经存在的其他工作表和列。但是,当我创建一个新列(在现有工作表和新工作表上)并尝试使用此列表时,我收到以下消息:

类型错误:+ 的不支持的操作数类型:“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 列中的国家/地区代码尝试了相同的脚本(之前创建的)并且它有效,所以我相信这与新列有关。

在此处输入图像描述

有谁知道为什么我不能将脚本用于新创建的列(CountryA)?

标签: pythonexcellist

解决方案


您在列中有一个数字或NaNCountryA;可能来自 Excel 自动格式化一个空单元格。您可以通过以下方式在使用之前将整个列转换为字符串:

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

然后运行脚本的其余部分。


推荐阅读