2017-10-31 1 views
2

df_transactions erhalten, ist ein Datenrahmen, der wie folgt aussieht:Pandas Datum Wert von Index

id date  is_cancel 
0 A 2017-10-30  0 
1 A 2017-10-31  1 
2 B 2017-09-14  0 
3 B 2017-09-15  0 

I

mask = df_transactions.groupby('id',as_index=False)['is_cancel'].nth(-1)==1 
tat den Booleschen Wert von ids mit is_cancel == 1 auf ihrer letzten Reihe zu bekommen . Ich möchte bekommen '2017.10.31' aber

replacement = df_transactions.loc[mask[mask].index]['date'] 

kehrt

1 2017-10-31 

Ich versuchte .values ​​aber ich bekomme

['2017-10-31T00:00:00.000000000'] 

irgendwelche Möglichkeiten, nur das Datum zu erhalten ? Die Datumsspalte ist ein numpy.datetime64 Typ

Antwort

0

Es ist möglich mask geben Sie mehr True s zurück, also müssen Sie Wert nach Position auswählen - z. als erster Wert [0]:

print (df_transactions) 
    id  date is_cancel 
0 A 2017-10-30   0 
1 A 2017-10-31   1 
2 B 2017-09-14   0 
3 B 2017-09-15   1 
4 C 2017-09-18   0 
5 C 2017-09-19   0 


mask = df_transactions.groupby('id',as_index=False)['is_cancel'].nth(-1)==1 
print (mask) 
1  True 
3  True 
5 False 
Name: is_cancel, dtype: bool 

replacement = df_transactions.loc[mask[mask].index, 'date'] 
print (replacement) 
1 2017-10-31 
3 2017-09-15 
Name: date, dtype: object 

print (replacement.iat[0]) 
2017-10-31 00:00:00 

print (replacement.values[0]) 
2017-10-31T00:00:00.000000000 

#for date 
print (replacement.iat[0].date()) 
2017-10-31 

print (type(replacement.iat[0].date())) 
<class 'datetime.date'> 

#for string 
print (replacement.iat[0].strftime('%Y-%m-%d')) 
2017-10-31 

print (type(replacement.iat[0].strftime('%Y-%m-%d'))) 
<class 'str'> 
+0

versuchten Ersatz = df_transactions.loc [Maske [Maske] .index, 'date'] item(), es gibt eine langen Typen integer wie diese 1483833600000000000 –

+0

. OK, dann benutze 'ersatz = df_transactions.loc [Maske [Maske] .index, 'Datum']. Iat [0]', vielleicht einige alte Version von Pandas verwenden – jezrael

+0

es zurückgegeben 2017-10-31 00:00:00 von Geben Sie Ich benutze Pandas Version 0.20.3 –