2016-10-31 2 views
2

Ich lerne Python (2.7) und versuche links zwei Pandas Datenrahmen zu verbinden. Ein Datenframe hat Datum und entsprechende Verkäufe eines Produkts, während das andere Datum und entsprechenden Wochentag hat.Linke innere Verbindung in Pandas

print type(weekdaytrain) 
print weekdaytrainhead(5) 

<class 'pandas.core.frame.DataFrame'> 
     data giorno_settimana 
0 2014-09-01     0 
1 2014-09-02     1 
2 2014-09-03     2 
3 2014-09-04     3 
4 2014-09-05     4 

print type(train) 
print train.head(5) 

<class 'pandas.core.frame.DataFrame'> 
     data  pezzi 
1078 2014-09-01 1743 
1086 2014-09-02 1483 
1094 2014-09-03 1510 
1102 2014-09-04 1276 
1110 2014-09-05 1741 

Wenn ich dies tun:

new_train = pd.merge(train,weekdaytrain, on='data',how='left') 

oder

new_train = pd.merge(train,weekdaytrain, left_on='data',right_on='data',how='left') 

ich:

 data pezzi giorno_settimana 
0 2014-09-01 1743    NaN 
1 2014-09-02 1483    NaN 
2 2014-09-03 1510    NaN 
3 2014-09-04 1276    NaN 
4 2014-09-05 1741    NaN 

Auch wenn die Daten noch entsprechen. Ich suchte nach Antworten, aber nichts passt zu meinem Problem, können Sie mir helfen?

Danke!

Antwort

1

Ich glaube, Sie Spalte datetime in beiden Dataframes konvertieren müssen, weil es dort anders sind dtypes scheint - man ist datetime und man ist object (offensichtlich string):

weekdaytrain.data = pd.to_datetime(weekdaytrain.data) 
train.data = pd.to_datetime(train.data) 

print (weekdaytrain.dtypes) 
data    datetime64[ns] 
giorno_settimana    int64 
dtype: object 

print (train.dtypes) 
data  object 
pezzi  int64 
dtype: object 

new_train = pd.merge(train,weekdaytrain, on='data',how='left') 
print (new_train) 
     data pezzi giorno_settimana 
0 2014-09-01 1743    NaN 
1 2014-09-02 1483    NaN 
2 2014-09-03 1510    NaN 
3 2014-09-04 1276    NaN 
4 2014-09-05 1741    NaN 

#column in train is not datetime, so need converting 
train.data = pd.to_datetime(train.data) 
new_train = pd.merge(train,weekdaytrain, on='data',how='left') 
print (new_train) 
     data pezzi giorno_settimana 
0 2014-09-01 1743     0 
1 2014-09-02 1483     1 
2 2014-09-03 1510     2 
3 2014-09-04 1276     3 
4 2014-09-05 1741     4 
+0

Dank! @ Jezrael –

Verwandte Themen