我有以下代码导致以下数据框:
date=['1/1/2016','2/2/2017','4/8/2017','3/3/2015']
distance=['10','20','30','40']
dd=list(zip(date,distance))
df=pd.DataFrame(dd,columns=['date','distance'])
date distance
0 1/1/2016 10
1 2/2/2017 20
2 4/8/2017 30
3 3/3/2015 40
我想选择2017年的所有数据。如果我尝试以下操作,我会得到一个空数据框,因为它不包括月和日:
df=df[df['date'].isin(['2017'])]
有没有办法在不将日期列表分为月,日和年的情况下完成此操作?如果我必须分割日期,我将如何保持相应的距离?
答案 0 :(得分:0)
df['date'] = pd.to_datetime(df['date'])
df = df[df['date'].dt.year == 2017]
答案 1 :(得分:0)
如果你想要的只是过滤'2017'。然后去做。
df[df.date.str.endswith('2017')