2024-03-29 14:48:43 发布
网友
如何通过从“Build Dep”中减去“Build”和从“Car Dep”中减去“Car”来创建一个新列,而不只是用一个数字填充所有值
下面是我使用的数据帧
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['Net'] = df['Credits'] - df['Debits']
看起来您想要创建新行。您可以通过Account对数据帧进行索引,这还有一个优点,即剩余的列是您要减去的内容。然后减去并添加一个新行
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
如果希望所有行都有一列delta,只需减去列即可。这就是numpy和熊猫的美丽之处。您可以使用少量代码将操作应用于整个列,并获得比使用普通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
简单到在列上使用
-
操作符看起来您想要创建新行。您可以通过
Account
对数据帧进行索引,这还有一个优点,即剩余的列是您要减去的内容。然后减去并添加一个新行如果希望所有行都有一列delta,只需减去列即可。这就是numpy和熊猫的美丽之处。您可以使用少量代码将操作应用于整个列,并获得比使用普通python更好的性能
相关问题 更多 >
编程相关推荐