【问题标题】:String Join treats True as Boolean rather than stringString Join 将 True 视为布尔值而不是字符串
【发布时间】:2019-08-16 17:50:00
【问题描述】:

我正在编写代码以将数据从 CSV 文件读取到 pandas 数据帧,并获取唯一值并将它们连接为字符串。问题是其中一列包含值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']

【问题讨论】:

    标签: python python-3.x pandas dataframe typeerror


    【解决方案1】:

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

    这可以通过map builtin function 轻松完成,它对可迭代的每个项目应用一个函数并返回结果:

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

    【讨论】:

      【解决方案2】:

      使用.astype(str)

      例如:

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

      【讨论】:

        猜你喜欢
        • 2018-03-10
        • 2017-08-04
        • 1970-01-01
        • 2020-03-08
        • 2011-12-28
        • 2011-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多