【发布时间】:2017-01-11 03:49:25
【问题描述】:
我有以下数据框表示特定季度的开始和结束日期:
下面的函数采用现有数据集(未显示)并创建一个名为“Quarter”的新列。如果我现有数据集中的日期在上述数据框中的开始日期和结束日期之内,则新的“季度”列将获得一个标签(即 Q1 或 Q2)。否则我希望它是空白的。
# dynamic function for quarterly cuts
def quarters(df, df_quarters):
for i, m in df.iterrows():
for j, (Quarter, Start_Date, End_Date) in df_quarters.iterrows():
if (m['date'] >= Start_Date) & (m['date'] <= End_Date):
df.set_value(i, 'Quarter', Quarter)
break
quarters(WSI_Hourly, df_quarters)
我上面写的函数可以工作,但是有问题。它仍然在我的数据集中将 2016、1、1 之前的任何日期标记为 Q1。例如,如果我有一个日期,例如 2015、12、3,则 Quarter 列应该是空白的,因为它超出了范围。但它仍然将其标记为 Q1。
*非常感谢任何帮助。
【问题讨论】: