【发布时间】:2018-04-23 09:48:32
【问题描述】:
鉴于:
从df下方,
df = pd.DataFrame(
{"date":['2016-6-1', '2016-9-22', '2016-10-28', '2016-11-4', '2016-6-29', '2016-10-1', '2016-6-15', '2016-7-29', '2016-11-1'],
"score":[9, 8, 8, 10, 6, 7, 7, 7, 6]
})
执行以下任务:
对于满足以下条件的日期,为新添加的名为“staffNumber”的列添加特定值:
IF 'date' 低于 6/1/2016~9/22/2016 THAN 创建一个值为 1 的新列。
IF 'date' 低于 9/23/2016~10/28/2016 THAN 创建一个值为 2 的新列。
IF 'date' 低于 10/29/2016~11/4/2016 THAN 创建一个值为 3 的新列
最终结果如下所示:
df2 = pd.DataFrame(
{"date":['2016-6-1', '2016-9-22', '2016-10-28', '2016-11-4', '2016-6-29', '2016-10-1', '2016-6-15', '2016-7-29', '2016-11-1'],
"score":[9, 8, 8, 10, 6, 7, 7, 7, 6],
"staffNumber":[1,1,2,3,1,2,1,1,3]
})
我尝试过的:
我通常在问任何问题之前先尝试一下。但是,对于这个,我想不出任何方法。
我从以下链接中查看了使用 np.where 和 .isin: 1.Python numpy where function with datetime 2.Using 'isin' on a date in a pandas column 3.Pandas conditional creation of a series/dataframe column
任何帮助将不胜感激!
【问题讨论】:
标签: python pandas numpy duration