2017-11-19 9 views
1

私はデータフレームを持っており、すべてのマーケットプレイスに最大データエントリであるlast_saturdayデータが存在するエントリが存在するかどうかを確認する必要があります。データフレームをグループ化して新しいデータフレームの値を見つけよう

data = { 
     'marketplace': [3, 3, 4, 4, 5, 3, 4], 
     'date': ['2017-11-11', '2017-11-10', '2017-11-07', '2017-11-08', '2017-11-10', '2017-11-09', '2017-11-10'] 
     } 
last_saturday = '2017-11-11' 

df = pd.DataFrame(data, columns= ['marketplace', 'date']) 

df_sub = df.groupby(['marketplace'])['date'].max() 
print(df_sub) 

は、私は市場の日付がlast_saturdayと一致するかどうかを確認するためにdf_subを反復処理するにはどうすればよい

marketplace 
3 2017-11-11 
4 2017-11-10 
5 2017-11-10 
Name: date, dtype: object 

df_sub =を取得しますか?

私は日付からprint(df_sub['date'])を印刷しようとすると、私は次のエラーを取得する:

私はdf_sub内のデータにアクセスするために、私はiloclocではなく、必ずどのように使用する必要があることを前提としています。

答えて

0

私はあなただけの値でSeriesを比較する必要があると考えている - boolean型のマスクを取得し、チェック少なくとも一つTrueためanyが必要になります。

print ((df_sub == last_saturday).any()) 
True 

print (df_sub == last_saturday) 
3  True 
4 False 
5 False 
Name: date, dtype: bool 

またはパラメータas_index=Falseまたはreset_indexDataFrame最初の作成:

df_sub = df.groupby(['marketplace'], as_index=False)['date'].max() 
#df_sub = df.groupby(['marketplace'])['date'].max().reset_index() 
print(df_sub) 
    marketplace  date 
0   3 2017-11-11 
1   4 2017-11-10 
2   5 2017-11-10 

そして比較列:

print ((df_sub['date'] == last_saturday).any()) 
True 
関連する問題