带有过滤器的列中的最大值

时间:2019-06-03 11:48:46

标签: python-3.x pandas dataframe

我在df 2列中-DATE_G,RES。

df['DATE_G'] = pd.to_datetime(df['DATE_G'], format='%Y.%m.%d')
condition_11 = df['RES'] = 1
condition_12 = df['RES'] = 0

我需要 1)在条件11和12上过滤df。 2)找到日期栏的最大值 3)从最大值中减去1天

startdate = df['DATE_G'].max().where(condition_11 & condition_12) - 1

但是我有

AttributeError: 'Timestamp' object has no attribute 'where'

1 个答案:

答案 0 :(得分:1)

.max()返回最大值,而不是可以在以下位置执行.where()的pd.Series:

startdate = df.loc[df['DATE_G'] == df['DATE_G'].max()].where(condition_11 & condition_12)
final_startdate = startdate['DATE_G'] - pd.DateOffset(1)