2016-08-19 4 views
3

Ich habe zwei Datenrahmen: dfDepas und df7;Zusammenführen von zwei Datenrahmen mit Python

dfDepas.info() 
<class 'pandas.core.frame.DataFrame'> 
Int64Index: 7 entries, 0 to 6 
Data columns (total 4 columns): 
day_of_week 7 non-null object 
P_ACT_KW  7 non-null float64 
P_SOUSCR  7 non-null float64 
depassement 7 non-null float64 
dtypes: float64(3), object(1) 
memory usage: 280.0+ bytes 


df7.info() 
<class 'pandas.core.frame.DataFrame'> 
Index: 7 entries, Fri to Thurs 
Data columns (total 6 columns): 
ACT_TIME_AERATEUR_1_F1 7 non-null float64 
ACT_TIME_AERATEUR_1_F3 7 non-null float64 
ACT_TIME_AERATEUR_1_F5 7 non-null float64 
ACT_TIME_AERATEUR_1_F6 7 non-null float64 
ACT_TIME_AERATEUR_1_F7 7 non-null float64 
ACT_TIME_AERATEUR_1_F8 7 non-null float64 
dtypes: float64(6) 
memory usage: 392.0+ bytes 

I versuchen, diese beiden Datenrahmen nach [ 'DAY_OF_WEEK'] zu verschmelzen, die in dem Index dfDepas Datenrahmen ist. Ich weiß nicht wie kann ich das verwenden: merged_df = pd.merge(dfDepas, df7, how='inner',on=['day_of_week'])

Irgendeine Idee, mir bitte zu helfen? Danke

Art

EDIT

dfDepas 
day_of_week P_ACT_KW P_SOUSCR depassement 
Fri 157.258929 427.142857 0.0 
Mon 157.788110 426.875000 0.0 
Sat 166.989236 426.875000 0.0 
Sun 149.676215 426.875000 0.0 
Thurs 157.339286 427.142857 0.0 
Tues 151.122913 427.016021 0.0 
Weds 159.569444 427.142857 0.0 


df7 

ACT_TIME_AERATEUR_1_F1 ACT_TIME_AERATEUR_1_F3 ACT_TIME_AERATEUR_1_F5 ACT_TIME_AERATEUR_1_F6 ACT_TIME_AERATEUR_1_F7 ACT_TIME_AERATEUR_1_F8 

Fri 0.326258 0.330253 0.791144 0.654682 3.204544 1.008550 
Sat -0.201327 -0.228196 0.044616 0.184003 -0.579214 0.292886 
Sun 5.068735 5.250199 5.407271 5.546657 7.823564 5.786713 
Mon -0.587129 -0.559986 -0.294890 -0.155503 2.013379 -0.131496 
Tues-1.244922 -1.510025 -0.788717 -1.098790 -0.996845 -0.718881 
Weds-3.264598 -3.391776 -3.188409 -3.041306 -4.846189 -4.668533 
Thurs -0.178179 0.011002 -1.907544 -2.084516 -6.119337 

Antwort

3

Bezug können Sie reset_index verwenden und umbenennen Spalte 0-day_of_week zum Abgleichen:

merged_df = pd.merge(dfDepas, 
        df7.reset_index().rename(columns={0:'day_of_week'}), 
        on=['day_of_week']) 

Danke Quickbeam2k1 für eine andere Lösung:

merged_df = pd.merge(dfDepas.set_index('day_of_week'), 
        df7, 
        right_index=True, 
        left_index =True) 
+2

Sie waren nur ein bisschen schneller. Ein anderer Weg sollte sein: dfDepas.set_index ("day_of_week") und über den Index – Quickbeam2k1

+0

@jezrael zusammenfassen Vielen Dank für die Hilfe immer, aber diesmal bekomme ich C: \ Benutzer \ Demonstrator \ Anaconda3 \ lib \ site-packages \ Pandas \ core \ frame.py in _getitem_column (self, key) 2002 # get Spalte 2003, wenn self.columns.is_unique: -> 2004 Rückkehr self._get_item_cache (key) 2006 # doppelte Spalten & möglich reduzieren Dimensionalität C: \ Benutzer \ Demonstrator \ Anaconda3 \ lib \ Site-Pakete \ Pandas \ core \ generic.py in _get_item_cache (Selbst, Artikel) 1348 Res = cache.get (Element) – Poisson

+0

@CyrineEzzahra - können Sie einige Beispiele hinzufügen Ihrer Daten? 4-5 Reihen? Weil es jetzt ohne Daten etwas kompliziert ist. – jezrael

Verwandte Themen