字符串拼接将True视为布尔值而不是字符串

5

我正在编写代码,从CSV文件读取数据到pandas dataframe,并获取唯一值并将它们作为字符串连接起来。问题在于其中一列包含TrueFalse值。因此,当连接这些值时,我会遇到错误。

  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']

2个回答

5

Python 3不进行隐式转换。您需要显式地将布尔值转换为字符串。

可以使用map内置函数轻松完成此操作,该函数对可迭代对象的每个项应用函数并返回结果:

str1 = ','.join(map(str, lst))

3

使用.astype(str)

例:

df[i].unique().astype(str).tolist()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接