У меня есть фрейм данных, который имеет только один индекс и два столбца. Но количество рядов может быть очень большим (например, 1000). Я хочу собрать одинаковые элементы из разных строк и столбцов. С помощью следующих кодов я уточняю свой вопрос.
import pandas as pd
data = dict()
data['id'] = ['r1','r2','r3','r4','r5','r6','r7','r8','r9','r10']
data['col1'] = [1,2,3,2,4,5,5,5,6,7]
data['col2'] = [2,3,4,4,5,6,6,6,0,0]
df = pd.DataFrame(data)
df = df.set_index('id')
Затем содержание df
показано ниже.
df =
col1 col2
id
r1 1 2
r2 2 3
r3 3 4
r4 2 4
r5 4 5
r6 5 6
r7 5 6
r8 5 6
r9 6 0
r10 7 0
Например, df.loc['r1', 'col2']
и df.loc['r2', 'col1'])
оба имеют номер 2
. Основываясь на этом df
, я хочу создать следующий словарь:
dict_result[2] = ['r1_col2', 'r2_col1']
...
dict_result[4] = ['r3_col2', 'r4_col2', 'r5_col1']
...
dict_result[0] = ['r9_col2', 'r10_col2']
Не могли бы вы показать мне, как эффективно получить такой dict_result
?
Спасибо!