如何在pandas中创建新的计算列并删除原始?

时间:2016-08-26 19:32:24

标签: python pandas

我有一个pandas数据帧'df',它有:

name a b
greg 1 1
george 2 2
giles 3 3
giovanni 4 5

我想通过计算函数运行此数据框来创建新列:c和d,以便得到以下结果数据帧:

name c d
greg 11 21
george 12 22
giles 13 23
giovanni 14 24

目前,我的代码如下:

我的钙化功能:

def calculate(row):
   return row['a']+10, row['b']+20

我修改数据框的功能:

df['c'] = df.apply(calculate, axis=1)

我得到的结果数据框是:

name a b c
greg 1 1 (11, 21)
george 2 2(12, 22)
giles 3 3 (13, 23)
giovanni 4 4 (14, 24)

如何让我的数据框看起来像:

name c d
greg 11 21
george 12 22
giles 13 23
giovanni 14 24

1 个答案:

答案 0 :(得分:0)

行迭代非常慢。做以下事情要好得多:

  var app = angular.module("employeeApp" ,[]);
   app.controller("Employee" , function($scope,$rootScope)
   {
     $rootScope.counter = (($rootScope.counter||0)+1);
        $scope.FirstName = "demo";
        $scope.LastName = "demo";
        $scope.Validate = function () {
            if ($scope.FirstName == 0 || $scope.LastName == 0) {
                alert("No!")
            } else {
                alert("Yes!")
            }
        }
   }); 

但是,要实现您的方法,您需要执行此操作:

df['c'] = df.a + 10
df['d'] = df.b + 20
df.drop(['a', 'b'], axis='columns', inplace=True)