如何从另一列中减去熊猫中的一列?

时间:2020-06-16 00:05:58

标签: python pandas dataframe

如何通过从“构建Dep”中减去“构建”并从“汽车Dep”中减去“汽车”来创建新列,而不用仅填充一个数字来填充所有值?

以下是我正在使用的数据框。

df = pd.DataFrame({'Accounts':['Cash','Build','Build Dep', 'Car', 'Car Dep'],
              'Debits':[300,500,0,100,0],
              'Credits':[0,0,250,0,50]})

df

2 个答案:

答案 0 :(得分:0)

就像在列上使用-运算符一样。

df['Net'] = df['Credits'] - df['Debits']

答案 1 :(得分:0)

您似乎想创建新行。您可以用Account为数据帧建立索引,这还有一个优势,其余的列就是您要减去的东西。然后减去并添加新行。

>>> df = pd.DataFrame({'Accounts':['Cash','Build','Build Dep', 'Car', 'Car Dep'],
...               'Debits':[300,500,0,100,0],
...               'Credits':[0,0,250,0,50]})
>>> 
>>> df = df.set_index('Accounts')
>>> df.loc['Build Delta'] = df.loc['Build Dep'] - df.loc['Build']
>>> df.loc['Car Delta'] = df.loc['Car'] - df.loc['Car Dep']
>>> 
>>> print(df)
             Debits  Credits
Accounts                    
Cash            300        0
Build           500        0
Build Dep         0      250
Car             100        0
Car Dep           0       50
Build Delta    -500      250
Car Delta       100      -50

如果您希望所有行都有一列增量,只需减去这些列即可。这就是麻木和熊猫之美。您可以使用少量代码将操作应用于整个列,并且比在普通python中执行操作可获得更好的性能。

>>> df = pd.DataFrame({'Accounts':['Cash','Build','Build Dep', 'Car', 'Car Dep'],
...               'Debits':[300,500,0,100,0],
...               'Credits':[0,0,250,0,50]})
>>> 
>>> df = df.set_index('Accounts')
>>> 
>>> 
>>> 
>>> df['Delta'] = df['Credits'] - df['Debits']
>>> df
           Debits  Credits  Delta
Accounts                         
Cash          300        0   -300
Build         500        0   -500
Build Dep       0      250    250
Car           100        0   -100
Car Dep         0       50     50