Как сравнить id двух таблиц и, когда они равны, добавить значение в другой столбец - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно проверить « number_id » в столбце, который содержит список идентификаторов из таблицы 1 , и создать новый столбец со спискомконтрольный номер из таблицы 2 .

Я делаю:

import pandas as pd 

table_1 = pd.read_excel('path/file.xlsx', sheet_name="sheet 1")
table_2 = pd.read_excel('path/file.xlsx', dtype='str')

table_1[['Number_id_table_1']].head(5)

        Number_id_table_1
    0   [35904690, 20344131]
    1   [26360006]
    2   NaN
    3   [46780790]
    4   [355343]

table_2.head()

    control     account_id_nk
0   71996761124 10197651
1   49991227097 1263884
2   71981020953 876828
3   11964723845 35661849
4   47992004868 19071134

Чтобы ограничить значения и добавить контрольный номер, который я делаю:

from itertools import chain

def mapping_account_id(index, original_df, column_id_name = str()):
    original_index = index
    list_column_id = []
    if original_index in original_df:
        for ind in original_index:
            list_column_id.append(original_df.iloc[original_index][column_id_name])
            return list(set(list(chain(*list_column_id))))
    else:
        return None

table_1 ['Number_id_table_1_teste'] = table_1 ['Number_id_table_1'].apply(mapping_account_id, args = (table_2, 'control'))

Результатом будет "None" для каждой строки,Но я знаю, что значения существуют в таблице.

Number_id_table_1_teste
0   None
1   None
2   None
3   None
4   None

Я ожидал, что столбец " Number_id_table_1_teste " будет содержать элемент управления число для каждого номер_ид .

Number_id_table_1_teste
0   [21964258763, 81999403136]
1   [92993930352]
2   NaN
3   [17996018821]
4   [85988943884]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...