2016-11-10 5 views
1

私は2つの同様のデータフレームを持っています。 df1とdf2は同じ構造である。また、1つの列(policyID)に同じデータがあり、他の列には異なるデータがあり、1つの列にはそれらを分離する必要があることに基づくタイムスタンプが含まれています。 DF1 -パンダのデータフレームの選択に複数の条件があります

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

df2-

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

私はDF2のタイムスタンプが高ければDF1のタイムスタンプが高く、DF2からのものである場合DF1からのデータが含まれているDF3を言う新しいデータフレームを作成する必要があります。

答えて

0
私はあなたが sort_valuesconcatが必要だと思う

firstまたはfirstとの最後の必要性groupby

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

関連する問題