通过比较一行中的列来过滤Pandas DataFrame

Wil*_*ill 4 python dataframe pandas

我的DataFrame中的每一行都有两个日期列.如何过滤出"日期A"在"日期B"之后的行?

例:

symbol |    reports_at       |    as_of        |      signal   
...   
A     | 2012-02-15T21:00:00Z |  2012-02-01T12:00:00Z|   65.20464367   
...
Run Code Online (Sandbox Code Playgroud)

应从DataFrame中删除此行,因为'reports_at'列中的日期出现在'as_of'列中的日期之后

jez*_*ael 8

你需要boolean indexingquery:

1.

df1 = df[df['as_of'] > df['reports_at']]
Run Code Online (Sandbox Code Playgroud)

2.

df1 = df.query('as_of > reports_at')
Run Code Online (Sandbox Code Playgroud)

3.

df1 = df[df['reports_at'] <= df['as_of']]
Run Code Online (Sandbox Code Playgroud)

4.

df1 = df.query('reports_at <= as_of')
Run Code Online (Sandbox Code Playgroud)