如何在Python的数据帧中为布尔函数下标?

2024-06-25 23:27:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个看起来像这样的数据帧:

    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

如果重复值为真,我希望值为1,如果为假,则为0。此列只有这两个值。我阅读了很多关于这方面的答案,并已经尝试了以下几点:

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

以及其他一些琐碎的解决方案,但每次我都会出现以下错误: 'bool' object is not subscriptable

因为我是python新手,有人能帮我找到正确的答案吗


Tags: 数据key答案falsetruedfpositioncandidate
3条回答

大概是这样的:

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

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

df['duplicates'].astype(int)

[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

希望这有帮助

相关问题 更多 >