【问题标题】:I'm trying to mask a date in pandas, before and after我试图掩盖熊猫的日期,之前和之后
【发布时间】:2021-05-21 11:14:59
【问题描述】:

我能够将选举日期时间之前和之后的掩码转换为布尔值,但是当我尝试打印 df 时,它会返回掩码的关键错误

election= dt.datetime(2021, 11, 8)
maskA = df['created_at'] >= election
maskB = df['created_at'] <= election
df['maskA']

【问题讨论】:

    标签: python pandas dataframe datetime mask


    【解决方案1】:

    您确实将 maskA 创建为掩码。但是使用 df['maskA'] 会查找名为“maskA”的列。尝试 df.loc[maskA] 代替。或者,您可以像这样将两者结合起来:

    df.loc[df['created_at'] >= election]
    

    【讨论】:

    • 这仅返回了 df 的标题,这很奇怪。当我尝试运行代码时,我仍然遇到一个关键错误。这是完整代码:maskA= df.loc[df['created_at'] &gt;= election] maskB= df.loc[df['created_at'] &lt;= election] df.groupby('maskA')['source'].value_counts().plot(kind='pie')
    • 啊,我明白了。 .loc 不仅创建掩码,还直接使用该信息过滤数据帧。因此,对于您的 groupby,它将是: df.loc[df['created_at'] >=election].groupby('maskA')['source'].value_counts().plot(kind='pie')
    【解决方案2】:

    您是否尝试过以下方法?

    election= dt.datetime(2021, 11, 8)
    maskA = df['created_at'] >= election
    maskB = df['created_at'] <= election
    df[maskA]
    

    它返回掩码的关键错误,因为当您调用 df['maskA'] 时,您要求的是名称为 'maskA' 的列,而您的意图是使用您刚刚拥有的对象(这是一个布尔掩码)已创建,maskA。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-07
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 2020-10-19
      相关资源
      最近更新 更多