【问题标题】:Iterating over rows in a pandas dataframe with a condition to create a new column使用条件迭代熊猫数据框中的行以创建新列
【发布时间】:2020-03-07 21:49:01
【问题描述】:

我有一个带有数值的 720 x 720 数据框。我想遍历每一行,将每个单元格与条件进行比较,并在行的末尾创建一个新单元格,其中包含满足条件的行中的单元格数(小于或等于某个数字 c)。所以,最后我需要添加一个新列,告诉我每行中有多少个数字满足我的条件。

编辑:添加数据帧的图像

谢谢!

【问题讨论】:

  • 请显示一些示例数据,我们也会尽量避免明确循环遍历数据框,因为这会破坏目的

标签: python pandas dataframe for-loop if-statement


【解决方案1】:

假设我们有一个这样的数据框:

import numpy as np
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 0.3, 4], 'b': [0.5, 3, 0.7, 5], 'c': [2, 0.8, 1, 3]})

以下代码生成一个新列,其中包含每行中小于或等于 2 的数字计数:

df['<= 2'] = df.apply(lambda x: len(np.where(x.values <= 2)[0]), axis=1)

您可以修改条件以满足您的问题。

【讨论】:

    【解决方案2】:

    我会先创建列,然后在第二步中添加值。一旦条件适用一次,该列就在那里。否则,您总是会创建一个新列。

    【讨论】:

      猜你喜欢
      • 2017-02-13
      • 2020-09-30
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      相关资源
      最近更新 更多