Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dołącz do ramek danych pandy na podstawie wartości kolumn

Myślę, że potrzebujesz merge z domyślnym inner połącz, ale nie jest konieczne zduplikowane kombinacje wartości w obu kolumnach:

print (df2)
   item_id  document_id col1  col2  col3
0      337           10    s     4     7
1     1002           11    d     5     8
2     1003           11    f     7     0

df = pd.merge(df1, df2, on=['document_id','item_id'])
print (df)
   item_id  position  document_id col1  col2  col3
0      337         2           10    s     4     7
1     1002         2           11    d     5     8
2     1003         3           11    f     7     0

Ale w razie potrzeby position kolumna na pozycji 3 :

df = pd.merge(df2, df1, on=['document_id','item_id'])
cols = df.columns.tolist()
df = df[cols[:2] + cols[-1:] + cols[2:-1]]
print (df)
   item_id  document_id  position col1  col2  col3
0      337           10         2    s     4     7
1     1002           11         2    d     5     8
2     1003           11         3    f     7     0



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 15 podstawowych pytań do rozmowy kwalifikacyjnej na temat MySQL dla administratorów baz danych

  2. laravel ukryte pola pod warunkiem

  3. Nie można dodać ograniczenia klucza obcego w polu daty

  4. Błąd składni MySQL podczas tworzenia tabeli

  5. Tabela tymczasowa w funkcjach zapisanych?