我正在编写代码以将数据从CSV文件读取到pandas数据帧,并获取唯一值并将它们连接为字符串。问题在于列之一包含值True
和False
。因此,在连接值时出现错误
sequence item 0: expected str instance, bool found
我希望python将True
视为字符串而不是布尔值。
我尝试了很多选择,但都没有用。
完整的代码和回溯附在下面。
import pandas as pd
df=pd.read_csv('C:/Users/jaiveeru/Downloads/run_test1.csv')
cols=df.columns.tolist()
for i in cols:
lst=df[i].unique().tolist()
str1 = ','.join(lst)
lst2=[str1]
----> 5 str1 = ','.join(lst) TypeError: sequence item 0: expected str instance, bool found
lst2
应该具有值['True,False']
答案 0 :(得分:4)
Python 3不会执行隐式强制转换。您需要将布尔值显式转换为字符串。
使用map
builtin function可以轻松完成此操作,该方法将函数应用于可迭代项的每个项并返回结果:
str1 = ','.join(map(str, lst))
答案 1 :(得分:3)
使用.astype(str)
例如:
df[i].unique().astype(str).tolist()