Как объединить два фрейма данных и установить один столбец на основе сравнения другого столбца? - PullRequest
0 голосов
/ 05 августа 2020
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 и результат ['a'] [0] должен быть установить как «кот» вместо «яблоко»; 1 <2 и result ['a'] [1] должен быть установлен как 'boy' вместо 'dog'; </p>

Как это сделать?

Ответы [ 2 ]

0 голосов
/ 05 августа 2020
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()

вывод:

результат ab 0 кошка 5 1 мальчик 2

0 голосов
/ 05 августа 2020

Это то, что вы ищете?

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...