Pandas - 基于2列和单独的测试列创建2个新列

时间:2017-11-27 13:44:16

标签: python pandas dataframe

我尝试根据另一列的值,从2个现有列中填充2个新列。

逻辑是,给定正数量的买卖双方应分别从派对和cparty领域填写。如果金额是负数,那么情况就会逆转而且买方是cparty而不是派对,而卖方就是当事人。

我试图避免做一些迭代 - 我可以使用下面的表达式获得每个组件但是,但尝试将这些结果与concat,+,+ =,combine_first,fillna和update,I&#39连接起来;在如何合并结果方面留下了空白。

每次他们被覆盖(我怀疑是因为Pandas匹配列名,而不是位置)或者我得到2个空列。

必须有一个很好的干净pythonic方式来组合下面的或类似的?

df[['Buyer', 'Seller']] = df[df.amount > 0][['party', 'cparty']]
df[['Buyer', 'Seller']] = df[df.amount < 0][['cparty', 'party']]

0 个答案:

没有答案