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

Kum*_*r P 5 python typeerror dataframe python-3.x pandas

我正在编写代码以将数据从 CSV 文件读取到 Pandas 数据帧并获取唯一值并将它们连接为字符串。问题是其中一列包含值TrueFalse。因此,在连接值时,我收到错误

  sequence item 0: expected str instance, bool found
Run Code Online (Sandbox Code Playgroud)

我希望 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]
Run Code Online (Sandbox Code Playgroud)
----> 5     str1 = ','.join(lst)
TypeError: sequence item 0: expected str instance, bool found
Run Code Online (Sandbox Code Playgroud)

lst2 应该有价值观 ['True,False']

Try*_*yph 5

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

这可以使用map内置函数轻松完成,该函数在可迭代的每个项目上应用一个函数并返回结果:

str1 = ','.join(map(str, lst))
Run Code Online (Sandbox Code Playgroud)