PYTHON:过滤数据集并截断日期 编辑:

我对python还是很陌生,所以任何帮助将不胜感激。我有一个数据集,需要根据特定事件进行过滤。例如,我有一列带有日期的列,我需要知道当月的日期和过去一周内发生的日期。该列称为POS_START_DATE,日期格式如2019-01-27T00:00:00-0500。我需要截断该日期,并将其与上周进行比较。到目前为止没有运气。

到目前为止,这是我的代码:

## import data package
import datetime

## assign date variables
today = datetime.date.today()

six_day = datetime.timedelta(days = 6)

## Create week parameter
week = today + six_day

## Statement to extract recent job movements
if fields.POS_START_DATE < week and fields.POS_START_DATE > today:
      out1 += in1

这是表格的示例:

Sample Table

我正在寻找将同一表过滤成仅一周内发生的行。样本表的底部(未显示)将在该月中显示日期。我希望最终输出仅显示这些行以及11月当月的任何其他行。

jsxzxuhu 回答:PYTHON:过滤数据集并截断日期 编辑:

我不太确定您的预期输出是什么,但这将帮助您创建一个额外的列,该列将用作满足您在if-statement中所述条件的情况下的标志:

import numpy as np
fields['flag_1'] = np.where(((fields['POS_START_DATE'] < week) & (fields['POS_START_DATE'] > today)),1,0)

对于符合您指定条件的案例,这将在数据框中生成一个额外的列,其中包含1。最后,您可以执行此计算以获得实际满足条件的案例总数:

total_cases = fields['flag_1'].sum()

编辑:

如果只需要使用符合条件的案例过滤数据,则可以对原始if-statement使用熊猫过滤(无需创建额外的标志字段),如下所示:

df_filtered = fields[(fields['POS_START_DATE'] < week) & (fields['POS_START_DATE'] > today)] 

或者,如果您创建了该标志,则更加简单:

df_filtered = fields[fields['flag'] == 1]

两者都应使用仅符合您条件的案例来生成新的数据框。

本文链接:https://www.f2er.com/3099946.html

大家都在问