例如,假设我有一个df
a b c
1 3 5
5 9 4
我有if
条件:
if a < 2:
3
elif a < 3:
4
else: b + c
我如何测试条件并为我的df的每一行返回一个结果,如下面所示?
a b c d
1 3 5 3
5 9 4 13
编辑:理想情况下,我想创建一个函数
,允许我
def函数(a,b,c)df['d']=函数(a,b,c)
并计算所有行的数据。因为在实际数据中,有100个条件语句和10个列。
您可以使用应用方法:
def custom_calc(x, a , b):
if x[0] < 2:
return 3
if x[0] > 3:
return x + a + b
df.a = df[['a', 'b', 'c']].apply(func=check, args=(df.b,df.c))
如您所愿编辑自定义函数
可以沿着轴1使用应用
函数。
def f(row):
if row['a'] > 2:
return 3
elif row['a'] > 3:
return 4
else:
return row['b']+row['c']
df.apply(f,axis=1)
#output
0 8
1 3
dtype: int64
我正在尝试使用一个函数从pandas数据帧中的多个列计算多个列。该函数接受三个参数-a-、-b-和-c-,并返回三个计算值-sum-、-prod-和-quot-。在我的pandas数据框架中,我有三个列-a-、-b-和-c-我想从中计算列-sum-、-prod-和-quot-。 我所做的映射只有在正好有三行时才起作用。我不知道出了什么问题,尽管我认为这与选择正确的轴有关。有人能解释一下发生了什么,
问题内容: 我正在尝试根据多个条件来计算不同的值。 下面包括样本数据练习。 可以在多个测试中找到给定的错误,对于同一测试(例如:6)可以找到多次,或者两者(例如:5)都可以找到。 以下查询可以很好地准确交付“ Total Bugs” 我的研究使我对以下查询产生了变化。 他们错过了独特的错误,因此对于“打开错误”列返回错误的结果(显示在查询下方) 当然,我的最终结果必须在一个表中同时提供两个计数列(
我用的是spark 2.1,脚本是pyspark。请帮我一下,因为我被困在这里了。 问题陈述:根据多列的条件创建新列 输入<code>数据帧<code>如下 现在我需要创建一个新列作为FLG,我的条件是如果
问题内容: 我如何使用JPA条件API执行以下操作: 使用CriteriaBuilder.countDistinct在一个列/路径上执行此操作很简单,但是如何在两个路径/列上执行此操作? 问题答案: 这是一个较晚的答案:-)尽管我不确定情况是否有所改变。 最近,我遇到了非常相同的需求,并使用concat解决了该需求,即通过将列连接为 伪列 ,然后将其连接到 伪列 上。 但是我不能使用,因为它生成了
我想用另一个DF的行中的名称替换DF的一些列名称 如何用df2中的“狗”和“猫”替换df1中的“T1”和“T2”?
问题内容: 我在Sqlite中有一个查询,其中涉及复杂的列计算,可以这样说: 我想将此计算选择为,但我还需要将其用作另一种计算的组成部分: 不幸的是,这会产生错误: 我知道我可以简单地重复计算: 但是,假设操作复杂且昂贵,是否有什么方法可以在以后重新引用它而不必重新计算呢? 问题答案: 您需要使用子查询。 结果