one = DataFrame({'a': ['apple', 'boy'], 'b': [4, 2]})
two = DataFrame({'a': ['cat', 'dog'], 'b': [5, 1]})
>>> one
a b
0 apple 4
1 boy 2
>>>
>>>
>>> two
a b
0 cat 5
1 dog 1
我希望合并的数据帧(名为“结果”)为:
>>> result
a b
0 cat 5
1 boy 2
因为4 <5并且result ['a'] [0]应该设置为'cat'而不是'apple'; 1 <2,并且result ['a'] [1]应该设置为'boy'而不是'dog';
该怎么做?
答案 0 :(得分:0)
这是您要找的吗?
import numpy as np
result = pd.DataFrame({
'a': np.where(one.b < two.b, two.a, one.a),
'b': np.where(one.b < two.b, two.b, one.b)
})
print(result)
输出
a b
0 cat 5
1 boy 2
答案 1 :(得分:0)
import pandas as pd
one = pd.DataFrame({'a': ['apple', 'boy'], 'b': [4, 2]})
two = pd.DataFrame({'a': ['cat', 'dog'], 'b': [5, 1]})
result = one.append(two)
result[(result['b']>1)].iloc[1:].sort_index()
输出:
结果 b 0猫5 1个男孩2