Python 熊猫,跨行求和,取决于列内容
我有一个奇怪的数据框,它的设置方式如下:Python 熊猫,跨行求和,取决于列内容,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我有一个奇怪的数据框,它的设置方式如下: 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 h
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字段中指示的列求和来创建一个新列?例如,第一个条目加起来等于5,因为我们要求和为1(4)和3(1)
谢谢大家! 你有没有调查过这个问题
assign(**kwargs)
将新列分配给数据帧,返回新对象(副本),并将新列添加到原始列中
这似乎就是你想要的。你有没有调查过这个问题
assign(**kwargs)
将新列分配给数据帧,返回新对象(副本),并将新列添加到原始列中
这似乎正是您想要的。因此您可以在此处使用
查找
df.lookup(df.index,df.to_sum_one)+df.lookup(df.index,df.to_sum_two)
Out[282]: array([ 5, 16], dtype=int64)
因此,您可以在此处使用查找
df.lookup(df.index,df.to_sum_one)+df.lookup(df.index,df.to_sum_two)
Out[282]: array([ 5, 16], dtype=int64)
我会尝试使用apply,因为这是使用它的最简单方法,只需将所需的参数作为.value获取,并在插入中使用它们
另外,为了避免混淆参数,我将创建一个函数来获取sum参数并使用它
也许有更好的方法,但可能会有所帮助
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))
我会这样做的。让我知道它是否有效 我会尝试使用apply,因为这是使用它的最简单方法,只需获取所需的参数作为.value,并在insert中使用它们即可
另外,为了避免混淆参数,我将创建一个函数来获取sum参数并使用它
也许有更好的方法,但可能会有所帮助
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))
我会这样做的。让我知道它是否有效 这正是我一直在寻找的,而且成功了!非常感谢你,我一直在努力寻找解决方案,这正是我一直在寻找的,而且成功了!非常感谢你,我一直在努力寻找解决方案这一个其实也很有效,但是W-B有熊猫内部解决方案这一个其实也很有效,但是W-B有熊猫内部解决方案