【问题标题】:checking if value matches mode and iterating through a loop in python检查值是否与模式匹配并遍历python中的循环
【发布时间】:2020-04-22 04:26:06
【问题描述】:

我正在尝试创建一个循环,其中循环查看每个值。如果列中的值等于列中最常见的结果(模式),则返回 1,否则应返回 0。这是我到目前为止的代码。我非常感谢您的帮助:

a= []

for i in AnswerColumns['Answer1']:
    if int(AnswerColumns['Answer1'][i]) ==  int(AnswerColumns['Answer1'].mode()):
        a.append(1)
    else: 
        a.append(0)

【问题讨论】:

  • 不就是AnswerColumns['Answer1'] == AnswerColumns['Answer1'].mode()[0]吗?
  • 如果您使用的是 pandas,您可以利用库的内置方法。这被认为是最佳实践,因为这些功能通常以非常优化的方式实现,因此我们不必为它编写自定义代码。
  • 你卡在哪里了?您已经在两个地方确定了价值;只需返回它。顺便说一句,我们不清楚你打算如何返回它,因为这个片段不在函数内。

标签: python pandas loops


【解决方案1】:

@Quang Hoang 为您指明了正确的方向,如果您需要将其保存为整数而不是布尔掩码,请执行以下操作:

a = (AnswerColumns['Answer1'] == AnswerColumns['Answer1'].mode()[0]).astype(int).to_list()

【讨论】:

    猜你喜欢
    • 2014-08-31
    • 2021-09-12
    • 2019-02-23
    • 1970-01-01
    • 2016-10-24
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多