【发布时间】:2022-01-24 01:07:59
【问题描述】:
使用 Pandas 中的 Apply 函数,我想比较 Datafarme 中的多个列,以查看是否存在高于或低于数值的值。比基于条件的结果如果更高或更低,我将在新列中输出一个字符串值。在将 1 列与数值进行比较时,我能够做到这一点,但不能与多列进行比较。我将如何使用多列来做到这一点?下面是我正在使用的示例。该示例适用于 1 Column ,但我无法为多列完成它。除了与数值“99”进行比较的“C 列”之外。我还想将“B 列”和“D 列”与数值“99”进行比较。
(注意:我不想使用 Lambda 函数方法)
代码如下,
import pandas as pd
import numpy as np
data = { 'a': [1, 15, 27, 399],
'b': [2, 30, 45, 60],
'c': [100,200, 3, 78],
'd': [4, 300, 400, 500]
}
dfgrass = pd.DataFrame(data)
def judge(x):
if x > 99:
return 'bingo'
elif x < 99:
return 'jack'
dfgrass['e'] = dfgrass['c'].apply(judge)
print(dfgrass)
【问题讨论】:
-
仅适用于 A、B、C 列。对不起,我想用 D 代替 A。所以它适用于 B、C、D 列。我现在将对其进行编辑。
标签: python-3.x pandas dataframe pandas-apply