Python 如何聚合两列中的值并从中创建新列?
如何将每个状态“number”列中的值相加,然后从“number”旁边的值创建一个新列 到目前为止,我有以下几点需要总结:Python 如何聚合两列中的值并从中创建新列?,python,python-2.7,python-3.x,pandas,Python,Python 2.7,Python 3.x,Pandas,如何将每个状态“number”列中的值相加,然后从“number”旁边的值创建一个新列 到目前为止,我有以下几点需要总结: out_state_total['df']=df.groupby('State')['out-of-state'].sum(axis=1) 但由于某些原因,我无法根据这些值创建新列 example state in-state out-of-state final_state red NJ 3000 99 AL blue
out_state_total['df']=df.groupby('State')['out-of-state'].sum(axis=1)
但由于某些原因,我无法根据这些值创建新列
example state in-state out-of-state final_state
red NJ 3000 99 AL
blue ND 43 500 AK
green NY 8000 10 AZ
gray NJ 94 20 AR
orange DE 32 7
使用变换
df[['in_state_total','out_state_total']]=df.groupby('state')['in-state', 'out-of-state'].transform('sum')
example state in-state out-of-state in_state_total out_state_total
0 red NJ 3000 99 3094 119
1 blue ND 43 500 43 500
2 green NY 8000 10 8000 10
3 gray NJ 94 20 3094 119
4 orange DE 32 7 32 7
嗯,上面写的是AttributeError:'DataFrameGroupBy'对象没有属性'number',我写了这个:in_state_total=df.groupby('state')['in-state']].sum(),然后这个:df['in_state_total']=df.groupby('state').number.transform(“sum”)你使用的列名和我在你发布的df中看到的列名不同。您不需要groupby.sum,您可以直接使用Transform我不确定代码是否正确?这就是使用正确的变量:df['out-of-state']=df.groupby('state').number.transform(“sum”)预期的输出是什么?