операцию, предыдущий опыт подсказывает, что должно быть +/- стандартное средство. Чтобы постоянно не обегать обекты в которых осуществляю поиск, выстраиваю интересующие объекты по идексу. Вот один из примеров такой функции:
                  
                  
                  
                  
                  
                  def make_index(df, index_name, column_name):
                  
                  
                      result = pd.DataFrame(columns=['value'])
                  
                  
                  
                  
                  
                      for i, row in df[df[index_name].notnull()].iterrows():
                  
                  
                          indexes = row[index_name].split(', ')
                  
                  
                  
                  
                  
                          for index in indexes:
                  
                  
                              if index not in result.index:
                  
                  
                                  result.loc[index, 'value'] = row[column_name]
                  
                  
                  
                  
                  
                      return result
                  
                  
                  
                  
                  
                  Может есть что-то стандартное на этот счёт?
                  
                  
                
Здравствуйте! Не понял, что Вы пытаетесь сделать при помощи функции. Если не сложно, то подробнее разъясните. Покажите, какие данные есть на ВХОДЕ и что хотите получить на ВЫХОДЕ.
 Алексей
                          Сафонов
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Алексей
                          Сафонов
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Да, конечно, попробую развернуть вопрос. Постоянно возникает задача бежать по одному DataFrame, брать его значение, иногда оно составное, поэтому приходится ещё цикл по ним создавать. Искать это значение в другом DF, если находится обогащать данными из второго первый. Если делать влоб сложность такого из-за цикла в цикле большая. Поэтому я предварительно формирую доп. DF где индексами являются значения по которым я ищу. Тогда мне не надо искать в цикле, я по индексу сразу забираю значения из дополнительного DF. Надеюсь не сделал ещё путанней вопрос 😔
а INNER JOIN не пробовали?
Возможно, ответ найдётся здесь: https://stackoverflow.com/questions/41815079/pandas-merge-join-two-data-frames-on-multiple-columns А вообще из такой формулировки кажется, что просто можно сконкатенировать первые 3 колонки и уже дальше спокойно их джойнить
 Алексей
                          Сафонов
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Алексей
                          Сафонов
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Поэксперементирую, спасибо.
И всё же с видимыми примерами гораздо проще подсказывать. Пусть даже это будут dummy-данные
 Алексей
                          Сафонов
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Алексей
                          Сафонов
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Ок, вечером оформлю.
вот это правильный вопрос.
Может Вам нужно что-то вот такое...
 Алексей
                          Сафонов
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Алексей
                          Сафонов
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Ага прям ровно то что хотелось. Спасибо Вам!
Обсуждают сегодня