【发布时间】:2019-10-29 22:19:09
【问题描述】:
我正在努力找出一种遍历数据框的方法,并使用 if 语句来确定一天是工作日还是周末(并复制,使用 holiday 包查找假期)
测试数据
| Date |col1 |col2 |col3 |----| week | <- Add
|------------|-----|-----|-----|----|------|
| 2019-10-27 | 1.5 | 2.4 | 1.9 |----| wknd |
| 2019-10-28 | 2.7 | 2.1 | 1.9 |----| wkdy |
| 2019-10-29 | 1.4 | 2.7 | 1.8 |----| wkdy |
我的示例 df 有一个日期列和 3 列数据。实际数据集有大约 5 年的数据。我想添加一些条件来检查该日期是周末还是工作日,并将其添加为新列。我没有问题迭代和检查日期,但我找不到任何允许我逐行附加或写入数据帧的东西。
到目前为止,我有这样的事情:
for i in df.date:
if i.weekday() < 5:
df['period2'] = ('wkdy')
else:
df['period2'] = ('wknd')
显然这不能满足我的需求,因为它只是将 DF 中的所有列设置为最后一个迭代值。
逐行迭代和应用此逻辑的最佳方法是什么?我错过了一些简单的东西吗?
【问题讨论】: