我想知道用于检测何时一列中的值大于另一列中的值的代码。因此,在下面的示例中,行索引1 B变得比A大,而行索引3 A变得比B大。我想要一个突出显示行1和2以及突出显示哪个列的DataFrame。>
In [1]: df
Out[1]:
A B
0 3 2
1 5 6
2 3 7
3 8 2
所需结果:
In [1]: df_result
Out[1]:
RES
0 0
1 -1
2 0
3 1
答案 0 :(得分:5)
答案 1 :(得分:0)
您可以对列差异使用np.sign
来知道差异的符号,然后用列标签替换值:
df['who_is_bigger'] = (pd.DataFrame(np.sign(df['col1'] - df['col2']))
.replace({-1: 'col2', 1: 'col1', 0:'same_size'}))
如果两列的值相同,则将在who_is_bigger
列中返回最大列的列标签和same_size字符串
答案 2 :(得分:0)
如果比较是专门在两列之间进行的,则可以采用两者之间的差异,假设我们已经有了以下数据框:
>>> data = pd.DataFrame.from_dict({'a': [5, 4, 3, 2, 1], 'b': [5, 3, 4, 1, 2]})
>>> data
a b
0 5 5
1 4 3
2 3 4
3 2 1
4 1 2
然后通过执行data['a'] - data['b']
,我们得到每个变量之间的增量,如下所示:
>>> data['a'] - data['b']
0 0
1 1
2 -1
3 1
4 -1
0
表示该行中的两列都具有相同的编号,大于0
的数字表示左列(a
)大于右列({ {1}})和一个负数(相反)。