【问题标题】:How do I subscript a boolean function in a data frame in Python?如何在 Python 的数据框中下标布尔函数?
【发布时间】:2020-05-31 15:17:45
【问题描述】:

我的数据框看起来像这样:

    key             Candidate   Position duplicates
0   0-39-1  SHRI. BISHNU PADA RAY    1    False
1   0-39-1  SHRI. KULDEEP RAI SHARMA 2    False
2   0-39-1  SHRI TAPAN KUMAR BEPARI  3    False
3   0-39-1  SHRI. P. R. GANESHAN     4    False
4   0-39-1  SMTI. R. S. UMA BHARATTH 5    True

如果重复值是 True,我想要一个值 1,如果它是 False,我想要一个 0。此列只有这两个值。我为此阅读了很多答案,并且已经尝试了以下方法:

df["duplicates"] = int(df["duplicates"]==True) df["flag_numeric"][df["duplicates"]==True] = 1

还有其他几个简单的解决方案,但每次我收到以下错误: 'bool' object is not subscriptable

由于我是 python 新手,有人可以帮我找到正确的答案吗?

【问题讨论】:

    标签: python pandas dataframe boolean


    【解决方案1】:

    类似这样的:

    df["duplicates"] = df.duplicates.map(int)
    

    【讨论】:

      【解决方案2】:

      将 boolean 转换为 0 和 1 可以通过强制转换为 int 来完成。为此使用astype 方法:

      df['duplicates'].astype(int)
      

      【讨论】:

        【解决方案3】:

        [df["duplicates"]==True] = 1

        括号外的双等号==也是必须的,改成:df[df['column_name'] == value] == 1

        所以你的情况是:

        if df[df['duplicates'] == True]: #the double square brackets are important
            return 1
        else
            return 0
        

        希望这会有所帮助!

        【讨论】:

          猜你喜欢
          • 2021-12-06
          • 2013-08-25
          • 2015-09-05
          • 2019-01-19
          • 2017-07-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多