2016-12-28 7 views
0

Ich bin hier, um Datenrahmen Pandas und habe die folgende Frage.drei Datenrahmen Kombinieren

Ich habe 3 Datenrahmen aus dem Lesen von CSV-Dateien kommen:

  • Datenrahmen 1 pdDop und hat folgende Einträge benannt:

    ist
    DOP_WNC DOP_TOW DOP_NRSVS DOP_PDOP DOP_VDOP DOP_HDOP DOP_TDOP 
    
    1928 424800.0   4  5.81  5.36  2.24  2.72 
    
    1928 424801.0   4  5.81  5.36  2.24  2.72 
    
    1928 424802.0   4  5.80  5.35  2.24  2.72 
    
    1928 424803.0   4  5.80  5.35  2.24  2.72 
    
    1928 424804.0   4  5.80  5.35  2.24  2.72 
    
    1928 424805.0   4  5.80  5.35  2.24  2.72 
    
  • Datenrahmen 2 pdGeod und hat die folgenden Einträge benannt :

    GEOD_TOW GEOD_MODE GEOD_2D/3D GEOD_Error GEOD_NrSV GEOD_Latitude GEOD_Longitude GEOD_Height 
    
    424800.0   1   0   0   4   0.8874   0.0767  150.4975 
    
    424801.0   1   0   0   4   0.8874   0.0767  150.5277 
    
    424802.0   1   0   0   4   0.8874   0.0767  150.5579 
    
    424803.0   1   0   0   4   0.8874   0.0767  150.5931 
    
    424804.0   1   0   0   4   0.8874   0.0767  150.6214 
    
  • Datenrahmen 3 pdSatVis genannt und hat folgende Einträge:

    VISIBILITY_TOW VISIBILITY_SVID VISIBILITY_AZIMUTH VISIBILITY_ELEVATION 
    
    426175.0    92    54.50     35.43 
    
    426175.0    100    108.22     26.00 
    
    426175.0    88    49.29     10.48 
    
    426175.0    89    278.29     17.39 
    
    426176.0    92    54.50     35.43 
    
    426176.0    100    108.22     26.00 
    
    426176.0    88    49.29     10.48 
    
    426176.0    89    278.29     17.39 
    
    426177.0    92    54.48     35.42 
    
    426177.0    100    108.23     25.98 
    
    426177.0    88    49.28     10.45 
    
    426177.0    89    278.27     17.38 
    
    426178.0    92    54.48     35.42 
    

Ich möchte ein Datenrahmen schaffen, die auf der *_TOW (Time Of Week) Spalte basiert kombiniert, die in jedem Datenrahmen ist. Man beachte, dass der letzte Datenrahmen pdSatVis mehrere Linien mit dem VISIBILTY_TOW Wert hat, die beide nur auf 1 Zeile in pdDop und pdGeod entspricht.

Antwort

0

Sie können entweder eine neue Spalte hinzufügen fusionieren auf:

pdDop['TOW'] = pdDop['DOP_TOW'] 
pdGeod['TOW'] = pdGeod['GEOD_TOW'] 
pdSatVis['TOW'] = pdSatVis['VISIBILITY_TOW'] 
pd.merge(pd.merge(pdDop, pdGeod, how='outer'), pdSatVis, how='outer') 

oder die Spalten bieten explizit verschmelzen auf:

m1 = pd.merge(pdDop, pdGeod, how='outer', left_on='DOP_TOW', right_on='GEOD_TOW') 
pd.merge(m1, pdSatVis, how='outer', left_on='DOP_TOW', right_on='VISIBILITY_TOW') 
Verwandte Themen