我有一个 pandas 数据框,其中有一列指示在一天中的哪个小时执行特定操作。因此 df['hour'] 包含许多行,每行的值从 0 到 23。
我正在尝试为“is_morning”等创建虚拟变量,例如:如果 df['hour'] >= 5 且 < 12,则返回 1,否则返回 0
考虑到数据集的大小,for 循环不起作用,我尝试了其他一些东西,例如 df['is_morning'] = df['hour'] >= 5 and < 12
有什么建议么??
尝试使用varchar数据类型(例如“1950-08-14”)将列更新为数据date类型
UPDATE tablename SET columnname = to_date(columnname, 'YYYY-MM-DD');
Run Code Online (Sandbox Code Playgroud)
或者
ALTER TABLE tablename ALTER COLUMN columnname TYPE DATE USING to_date(columnname, 'YYYY-MM-DD');
Run Code Online (Sandbox Code Playgroud)
但都返回错误信息
ERROR: invalid value "columnname" for "YYYY"
DETAIL: Value must be an integer.
Run Code Online (Sandbox Code Playgroud)
参考http://www.postgresql.org/docs/9.4/static/functions-formatting.html