Почему pandas .join () неправильно объединяется по индексу? - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь объединить два фрейма данных с одинаковыми индексами в один фрейм данных, но я не могу заставить его работать. Я ожидаю повторных значений из-за функции повторной выборки. Окончательный кадр данных, похоже, отсортировал индексы в порядке возрастания, что нормально. Но почему он теперь в 2 раза длиннее?

Вот код:

Исходный фрейм данных:

    default student balance income
0   No  No  729.526495  44361.625074
1   No  Yes 817.180407  12106.134700
2   No  No  1073.549164 31767.138947
3   No  No  529.250605  35704.493935
4   No  No  785.655883  38463.495879
... ... ... ... ...
9995    No  No  711.555020  52992.378914
9996    No  No  757.962918  19660.721768
9997    No  No  845.411989  58636.156984
9998    No  No  1569.009053 36669.112365
9999    No  Yes 200.922183  16862.952321
10000 rows × 4 columns
    X = default[['balance','income']]
    y = default['default']

    boot = resample(X,y,replace=True,n_samples = len(X),random_state=1)
    #convert to dataframe
    boot = np.array(boot)
    X = np.array(boot)[0]
    y = np.array(boot)[1]

    df = pd.DataFrame(X,index = X.index)
    dfy = pd.DataFrame(y,index=y.index)
    df = df.join(dfy)

X фрейм данных:

   balance        income
235    964.820253  34390.746035
5192     0.000000  29322.631394
905   1234.476479  31313.374575
7813  1598.020831  39163.361056
2895  1270.092810  16809.006452
...           ...           ...
7920   761.988491  39172.945235
1525   916.536937  20130.915258
4981  1037.573018  18769.579024
8104   912.065531  62142.061061
6990  1341.615739  26319.015588

[10000 rows x 2 columns]

Y датафрейм

default
235       No
5192      No
905       No
7813     Yes
2895      No
...      ...
7920      No
1525      No
4981      No
8104      No
6990      No

[10000 rows x 1 columns]

Объясните это по какой-то причине:

balance income  default
0   729.526495  44361.625074    No
0   729.526495  44361.625074    No
0   729.526495  44361.625074    No
0   729.526495  44361.625074    No
1   817.180407  12106.134700    No
... ... ... ...
9998    1569.009053 36669.112365    No
9999    200.922183  16862.952321    No
9999    200.922183  16862.952321    No
9999    200.922183  16862.952321    No
9999    200.922183  16862.952321    No
20334 rows × 3 columns

Может кто-нибудь объяснить, где я ошибаюсь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...