如何通过从“构建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
答案 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