我有一个奇怪的数据框,它是通过以下方式设置的:
header_one | header_two | header_three | header_four | to_sum_one | to_sum_two
4 5 1 2 header_one header_three
2 4 10 12 header_two header_four
我是否可以通过对sum_one和sum_two字段中指示的列求和来创建新列?例如,由于我们要对to_sum_one(4)和to_sum_three(1)求和,因此第一个条目的总数为5。
谢谢!
答案 0 :(得分:1)
因此您可以在此处使用lookup
df.lookup(df.index,df.to_sum_one)+df.lookup(df.index,df.to_sum_two)
Out[282]: array([ 5, 16], dtype=int64)
答案 1 :(得分:1)
我将尝试使用Apply,因为这是您可以使用此方法的最简单方法,只需将所需的参数作为.value并在插入中使用它们即可。
此外,所以您不会混淆参数,我将创建一个获取和参数并使用该函数的函数。
也许有更好的方法可以这样做,但这可能会有所帮助。
header_one | header_two | header_three | header_four | to_sum_one | to_sum_two
4 5 1 2 header_one header_three
2 4 10 12 header_two header_four
def sum(param1, param2):
return df.param1+ df.param2
然后插入:
df.insert(6, "Sum", sum(df.to_sum_one, df.to_sum_two))
这就是我要做的。让我知道它是否有效。
答案 2 :(得分:0)