Python 如何使用布尔过滤器获取此模式?

Python 如何使用布尔过滤器获取此模式?,python,pandas,Python,Pandas,我正在探索一个数据集,只想在受试者回答X(在本例中为“可爱”)时才使用“性”列的模式 到目前为止,我已经用以下逻辑做了一些事情。从“性”中得到了假人,有一个“男性”(0,1)栏。从那里,我试着做 i_1_1 = clean_USA['Male'][clean_USA['Image1_1']=='cute'] i_mode = i_1_1.mode() 我试过几次,但还是失败了。这次我得到了“keyrerror:'Male'”作为输出。也许R中的这个看起来像: i_1 <- mode(cl

我正在探索一个数据集,只想在受试者回答X(在本例中为“可爱”)时才使用“性”列的模式

到目前为止,我已经用以下逻辑做了一些事情。从“性”中得到了假人,有一个“男性”(0,1)栏。从那里,我试着做

i_1_1 = clean_USA['Male'][clean_USA['Image1_1']=='cute']
i_mode = i_1_1.mode()
我试过几次,但还是失败了。这次我得到了“keyrerror:'Male'”作为输出。也许R中的这个看起来像:

i_1 <- mode(clean_USA$Male(clean_USA$Image1_1=='cute'))

谢谢

无论您想做什么,都不能在创建“男性”列之前访问该列。但我猜没有必要创建新的列

如果我理解正确,您希望:

i_1_1 = clean_USA[clean_USA['Image1_1']=='cute']
i_mode = i_1_1['Sex'].mode()
编辑: 所以你创建了这个专栏,但我没有看到。那么它应该是这样的

i_1_1 = clean_USA[clean_USA['Image1_1']=='cute']
i_mode = i_1_1['Male'].mode()

这就是你想要的

df.loc[df.Image1_1 == "cute", ["Sex"]].mode()

      Sex
0  Female

当您需要列的
模式时,不确定索引
Male
的目的是什么。如果排除除一个以外的所有值,则模式就是该值。

尝试:
i_1_1=clean_USA[(clean_USA['Image1_1']=='cute')|(clean_USA['Sex']='Male')]
Hey Anurag,谢谢你的回答。我仍然得到与输出相同的错误,我认为这与尝试将作为输出的过滤器应用于数据帧有关。可能是这样吗?我遇到的另一个错误是:“TypeError:不支持用数据帧索引一个系列,请使用适当的数据帧列”你能在你的问题中添加
df.head()
的输出吗?当然,这是一个附带的,但表没有格式化,所以请将
df.head()的输出发布到dict()
你好,考官。对于第一部分,实际上不是以前创建的bc列,请检查df的标题,即最后一列。对于第二个,你是对的,谢谢你所做的!谢谢你的回答,我节省了时间和代码。所以,我很喜欢这个优雅的片段,但仍然作为一个输出给出:KeyError:“[Index([('I','m','a','g','e','1','1','1'),('I','m','a','g','e','1','1'),dtype','object')中没有一个是在[Index],“无论您实际拥有的数据与您当时发布的数据不匹配,因为我使用了你发布的代码片段,它可以正常工作。我是从笔记本上抄来的:(我试着弄清楚
df.loc[df.Image1_1 == "cute", ["Sex"]].mode()

      Sex
0  Female