Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何聚合两列中的值并从中创建新列?_Python_Python 2.7_Python 3.x_Pandas - Fatal编程技术网

Python 如何聚合两列中的值并从中创建新列?

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

如何将每个状态“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     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”)预期的输出是什么?