TypeError:使用新创建的列表时,+:“float”和“str”的操作数类型不受支持

2024-05-19 18:41:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用外部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)使用脚本吗


Tags: in脚本消息示例df列表forread
1条回答
网友
1楼 · 发布于 2024-05-19 18:41:24

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

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

然后运行脚本的其余部分

相关问题 更多 >