如何解决“+ 不支持的操作数类型:'float' 和 'str' 错误”?

问题描述 投票:0回答:1

我尝试通过Python对2个Excel进行合并和求和,但是当我使用“for循环”时,我发现了一个错误“+的操作数类型不受支持:'float'和'str'”

请参阅下面的代码:

import pandas as pd
import os

os.getcwd() + '/projects'

all_bit = os.listdir(os.getcwd() + '/projects/Python_excel/Test_files')

#Read Excel Bitcoin 1
bitcoin1 = pd.read_excel(os.getcwd() + '/projects/Python_excel/Test_files/' + all_bit[0])

#Check file
all_bit[0]

#Change data types
bitcoin1["Latest"] = bitcoin1["Latest"].astype(int)
bitcoin1["Open"] = bitcoin1["Open"].astype(int)
bitcoin1["Highest"] = bitcoin1["Highest"].astype(int)
bitcoin1["Lowest"] = bitcoin1["Lowest"].astype(int)

#Drop unnecessary column
bitcoin1 = bitcoin1.drop(['%Change','Amount'], axis = 1, inplace = False)

#Read Excel Bitcoin 2
bitcoin2 = pd.read_excel(os.getcwd() + '/projects/Python_excel/Test_files/' + all_bit[1])

#Change data types
bitcoin2["Latest"] = bitcoin2["Latest"].astype(int)
bitcoin2["Open"] = bitcoin2["Open"].astype(int)
bitcoin2["Highest"] = bitcoin2["Highest"].astype(int)
bitcoin2["Lowest"] = bitcoin2["Lowest"].astype(int)

#Drop unnecessary column
bitcoin2 = bitcoin2.drop(['%Change','Amount'], axis = 1, inplace = False)

#Loop
rep = pd.DataFrame()
for bitcoin in all_bit:
    data_bit = pd.read_excel(os.getcwd() + '/projects/Python_excel/Test_files/' + bitcoin)
    rep = rep.add(data_bit.set_index('Date'),fill_value=0)

完成 for 循环后,它显示“TypeError: unsupported operand type(s) for +: 'float' and 'str'”。我尝试将 float 更改为 int 但它不起作用。

你们能给我建议吗?

谢谢你

python pandas dataframe numpy
1个回答
0
投票

要修复此错误,您需要确保在兼容的数据类型之间执行操作。如果您打算将浮点值与字符串值连接起来,则需要先将浮点值转换为字符串,然后再将它们连接在一起

以下是将浮点数转换为字符串来修复错误的方法:

number = 10.5
text = "20"
result = str(number) + text
print(result)

在代码中查找触发错误的行并应用正确的转换。

© www.soinside.com 2019 - 2024. All rights reserved.