Как присоединиться к себе в пандах? - PullRequest
0 голосов
/ 02 декабря 2018

Как присоединиться к моему DataFrame?

d = {'users': [1,2,3,4,5,6,7,8,9], 'code': [12,21,34,12,21,40,74,40,92]} 
df = pd.DataFrame(data=d)

Я хочу сопоставить своих "пользователей", используя "код".

Я хочу, чтобы моя таблица была такой -

user1 user2 code active  
1      4      12   1
2      5      21   1
3     NONE    34   0
6      8      40   1

и т. Д.

1 Ответ

0 голосов
/ 03 декабря 2018

На мой взгляд, лучше создать класс "Pair", который бы содержал id1, id2, код и статус.И сохраните список этих объектов.

Но если вам нужно использовать свою структуру, вы можете использовать пользовательскую функцию для создания такого DataFrame.

    def get_data_frame(data):
        columns = ['user1', 'user2', 'code', 'active']
        main_df = pd.DataFrame(columns=columns)
        for index, user in enumerate(data['users']):
            if data['code'][index] in main_df['code'].unique():
                main_df.loc[main_df['code'] == data['code'][index], ['user2']] = user
                main_df.loc[main_df['code'] == data['code'][index], ['active']] = True
            else:
                temp_df = pd.DataFrame(data=[[user, None, data['code'][index], False]], columns=columns)
                main_df = main_df.append(temp_df,  ignore_index=True)

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