【问题标题】:Using 'isin' on a date in a pandas column在 pandas 列中的日期上使用“isin”
【发布时间】:2017-09-30 21:39:39
【问题描述】:

我有以下代码导致以下数据框:

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'])]

有没有办法在不将日期列表拆分为月、日和年的情况下完成此操作?如果我必须分开日期,我怎么能保持相应的距离?

【问题讨论】:

    标签: python pandas


    【解决方案1】:
    df['date'] = pd.to_datetime(df['date'])
    df = df[df['date'].dt.year == 2017]
    

    【讨论】:

      【解决方案2】:

      如果您只想过滤“2017”。那就去做吧。

      df[df.date.str.endswith('2017')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-15
        • 2017-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多