【问题标题】:How to convert continous data to Categorical in python?如何在python中将连续数据转换为分类?
【发布时间】:2019-04-28 16:04:53
【问题描述】:

全部,

我的数据集如下所示,我想添加一列可以将我的最后一列,即 Day_of_The_week 转换为周一、周二、周三。 注意:Day_of_the_week 包括 5 天:周一、周二、周三、周四、周五。我检查了link,但不知道如何在我的数据框中实现

我想将我的 pandas 数据框转换如下:

作为python的新手,如果你能提供解释,那就太好了!

【问题讨论】:

    标签: python pandas numeric categorical-data continuous


    【解决方案1】:

    calendar.day_name + pd.Series.map

    您可以构建一个字典,然后将您的整数系列映射到日期字符串列表:

    import pandas as pd
    from calendar import day_name
    from collections import deque
    
    df = pd.DataFrame({'Day_of_the_week': [2, 3, 4, 4, 5, 6, 6]})
    
    days = deque(day_name)
    days.rotate(df['Day_of_the_week'].iat[0])  # rotate days
    days_map = dict(enumerate(days))           # construct dictionary
    
    df['Day_Factor'] = df['Day_of_the_week'].map(days_map)
    
    print(df)
    
       Day_of_the_week Day_Factor
    0                2     Monday
    1                3    Tuesday
    2                4  Wednesday
    3                4  Wednesday
    4                5   Thursday
    5                6     Friday
    6                6     Friday
    

    【讨论】:

    • 谢谢!字典键被分配 0 到星期五。我想将键 6 分配给星期五。有没有办法做到这一点 ?我希望我的字典以星期一的 2 开头,并以 6-Friday 键结束。
    • @biggboss2019,是的,正如您所看到的,这就是我的逻辑所做的,您将天轮换了 2 天。由于day_name 的星期一在索引 0 处,但您希望它在索引 2 处。要对此进行硬编码,请使用 2 而不是 df['Day_of_the_week'].iat[0]
    • 太棒了。谢谢!!
    猜你喜欢
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 2019-11-24
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多