【发布时间】:2021-04-06 00:25:43
【问题描述】:
我正在使用这样的数据框:
import pandas as pd
import datetime
records = [{'Name':'John', 'Start':'2020-01-01','Stop':'2020-03-31'}, {'Name':'John', 'Start':'2020-04-01','Stop':'2020-12-31'},
{'Name':'Mary', 'Start':'2020-01-01','Stop':'2020-03-15'}, {'Name':'Mary', 'Start':'2020-03-16','Stop':'2020-03-31'},
{'Name':'Mary', 'Start':'2020-04-01','Stop':'2020-12-31'}, {'Name':'Stan', 'Start':'2020-02-01','Stop':'2020-03-31'},
{'Name':'Stan', 'Start':'2020-04-01','Stop':'2020-12-31'}]
df = pd.DataFrame(records)
df['Start'] = pd.to_datetime(df['Start'])
df['Stop'] = pd.to_datetime(df['Stop'])
df
给出输出
Name Start Stop
0 John 2020-01-01 2020-03-31
1 John 2020-04-01 2020-12-31
2 Mary 2020-01-01 2020-03-15
3 Mary 2020-03-16 2020-03-31
4 Mary 2020-04-01 2020-12-31
5 Stan 2020-02-01 2020-03-31
6 Stan 2020-04-01 2020-12-31
我想要做的是选择开始日期为 2020-01-01 的所有个人的所有记录。也就是说,如果某人没有从 1/1 开始的记录,那么我不想要他们的任何记录。结果应该给我这个:
Name Start Stop
0 John 2020-01-01 2020-03-31
1 John 2020-04-01 2020-12-31
2 Mary 2020-01-01 2020-03-15
3 Mary 2020-03-16 2020-03-31
4 Mary 2020-04-01 2020-12-31
输出中应该没有 Stan 的记录,因为他的条目都没有以 2020-01-01 开头。关于如何做到这一点的任何想法?谢谢!
【问题讨论】:
标签: python pandas dataframe filter