如何基于日期范围为DataFrame的dummy列插入‘X’
基于日期范围给DataFrame列赋值的方法
首先得确保你的Date列是datetime类型,不然没法正确比较时间范围,先做类型转换:
import pandas as pd # 转换Date列为datetime格式 df["Date"] = pd.to_datetime(df["Date"])
接下来定义目标时间范围,用布尔索引结合.loc完成赋值(这种方式比行索引更可靠,不会因为数据顺序变动出错):
# 设定起始和结束时间 start_time = "2019-01-04 14:30:00" end_time = "2019-01-04 20:00:00" # 筛选时间范围内的行,给dummy列赋值"X" df.loc[(df["Date"] >= start_time) & (df["Date"] <= end_time), "dummy"] = "X"
这样处理后,所有Date落在指定时间段内的行,dummy列都会被设为"X"。
为什么用.loc?直接写df["dummy"][条件]容易触发SettingWithCopyWarning,.loc是pandas官方推荐的安全赋值方式,能明确修改原DataFrame的数据。
内容的提问来源于stack exchange,提问作者aaaahhhhhh
相关产品推荐
相关产品推荐

