python - 根据值在 df 中创建包含星期几和星期几的列

标签 python python-3.x pandas

我正在尝试基于包含数值的列创建 2 列。

  Value 
    0
    4
    10
    24
    null
    49

Expected Output:
  Value           Day      Hour
    0           Sunday   12:00am
    4           Sunday   4:00am
    10          Sunday   10:00am
    24          Monday   12:00am
    null        No Day    No Time
    49          Tuesday   1:00am
    Continued.....

我正在尝试的代码:

    value = df.value.unique()
    Sunday_Starting_Point = pd.to_datetime('Sunday 2015') 
    (Sunday_Starting_Point + pd.to_timedelta(Value, 'h')).dt.strftime('%A %I:%M%P')

感谢您的浏览!

最佳答案

我认为唯一值不是必需的,您可以对 2 列使用 2 次 dt.strftime,并使用 replaceNaT:

Sunday_Starting_Point = pd.to_datetime('Sunday 2015') 
x = pd.to_numeric(df.Value, errors='coerce')
s = Sunday_Starting_Point + pd.to_timedelta(x, unit='h')
df['Day'] = s.dt.strftime('%A').replace('NaT','No Day')
df['Hour'] = s.dt.strftime('%I:%M%p').replace('NaT','No Time')
print (df)
   Value      Day     Hour
0    0.0   Sunday  12:00AM
1    4.0   Sunday  04:00AM
2   10.0   Sunday  10:00AM
3   24.0   Monday  12:00AM
4    NaN   No Day  No Time
5   49.0  Tuesday  01:00AM

关于python - 根据值在 df 中创建包含星期几和星期几的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60000257/

相关文章:

python - 如何在 Python 中将数据框作为参数传递给 SQL 查询?

Python 将 HTML 箭头显示到数据框

python - Django 中的游标是否在打开的事务中运行?

python - 尽管安装了 python 模块,但仍无法导入它们

python - 当项目可以出现在多个类别中时,返回出现在单个类别中的项目的 Django 查询集

用于文档的 Python 接口(interface)

Python无法制作网络服务器

python - 如何使用 pandas 替换跨列的时间戳

python - SQLAlchemy/SQLSoup 在 MySQL 中看不到临时表

python - 优化Python中的内存使用: del obj or gc.收集()?