2016-11-10 158 views
1

我有兩個類似的數據框。 df1和df2具有相同的結構。並且他們在一列(policyID)中具有相同的數據,而其他列可能具有不同的數據,並且一列包含基於我需要將它們隔離的時間戳。 DF1 -選擇熊貓數據幀的多個條件

policyID,statecode,county,timestamp 
114455,FL,CLAY COUNTY,2015-12-23 

df2-

policyID,statecode,county,timestamp 
114455,FL,CLAY COUNTY,2016-12-34 

我需要建立一個新的數據幀說DF3其中包含從DF1的數據,如果DF1的時間戳較高,從DF2如果DF2的時間戳較高。

回答

0

我認爲你需要concatsort_values,最後需要groupbyfirstfirst

print (df1) 
      0 1    2   3 
0 114453 FL CLAY COUNTY 2016-12-23 
1 114455 FL1 CLAY COUNTY1 2016-12-11 
2 114457 FL1 CLAY COUNTY1 2016-12-11 

print (df2) 
     0 1    2   3 
0 114453 FL1 CLAY COUNTY1 2016-12-15 
1 114455 FL1 CLAY COUNTY1 2016-12-15 
2 114457 FL1 CLAY COUNTY1 2016-12-15 

df1.iloc[:,3] = pd.to_datetime(df1.iloc[:,3]) 
df2.iloc[:,3] = pd.to_datetime(df2.iloc[:,3]) 

df3 = pd.concat([df1,df2]) 
df3 = df3.sort_values(df3.columns[3]).groupby(df3.columns[0]).first() 
print (df3) 
      1    2   3 
0         
114453 FL1 CLAY COUNTY1 2016-12-15 
114455 FL1 CLAY COUNTY1 2016-12-11 
114457 FL1 CLAY COUNTY1 2016-12-11 

df3 = pd.concat([df1,df2]) 
df4 = df3.sort_values(df3.columns[3]).groupby(df3.columns[0]).last() 
print (df4) 
      1    2   3 
0         
114453 FL CLAY COUNTY 2016-12-23 
114455 FL1 CLAY COUNTY1 2016-12-15 
114457 FL1 CLAY COUNTY1 2016-12-15 
+0

我都懷疑,drop_duplicate將刪除重複的,怎麼會比較時間戳? 沒有保留參數它會保存第一個記錄,不考慮時間戳 –

+0

ops,sorrry,給我asec – jezrael

+0

請檢查編輯 - 添加sort_values排序數據幀的'timestamp' – jezrael