为了账号安全,请及时绑定邮箱和手机立即绑定

尝试使用列表中的值填充 Pandas 表中的新列,使用来自同一表中现有列的值作为索引

尝试使用列表中的值填充 Pandas 表中的新列,使用来自同一表中现有列的值作为索引

交互式爱情 2021-12-09 10:54:16
我有一张熊猫桌。在列中有时间戳。我已经将该时间戳解析为可以理解的内容。我也已经将星期几作为整数。我想要的是添加一个带有星期几名称的新列。我有一个名字列表(mon-sun)。添加新列的正确方法是什么,使用现有 weekdayINT 列中的值作为工作日名称列表的索引值来填充该新列。这是我所拥有的:weekdays = ['mon','tue','wed','thur','fri','sat','sun']def calc_time(df):    df['parsedtime'] = pandas.to_datetime(df['Timestamp'], unit='s')    df['weekdayINT'] = df['parsedtime'].dt.dayofweek    df['weekdayName'] = numpy.nan    #????Not sure how to fill this new column.    return df对熊猫非常陌生,并参加了数据科学课程。我知道我可以遍历数据帧行。但是有超过 200 万行。我相信大熊猫有更好的方法来做到这一点。使用另一列中的值作为列表的索引以便用值填充新列似乎是很常见的事情。感谢您的帮助。
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

pandas 有一个内置函数,称为day_name:


# sample data

df = pd.DataFrame(pd.date_range('2019-01-01', '2019-01-10'))


# use day_name

df['day of week'] = df[0].dt.day_name()


           0 day of week

0 2019-01-01     Tuesday

1 2019-01-02   Wednesday

2 2019-01-03    Thursday

3 2019-01-04      Friday

4 2019-01-05    Saturday

5 2019-01-06      Sunday

6 2019-01-07      Monday

7 2019-01-08     Tuesday

8 2019-01-09   Wednesday

9 2019-01-10    Thursday

或者你可以map用一个字典:


# sample data

df = pd.DataFrame(pd.date_range('2019-01-01', '2019-01-10'))

# int of day of week

df['day_of_week'] = df[0].dt.dayofweek

# map with a dict

df['day_of_week_name'] = df['day_of_week'].map({0:'mon', 1:'tue',

                                                2:'wed', 3:'thur',

                                                4:'fri', 5:'sat', 6:'sun'})


           0  day_of_week day_of_week_name

0 2019-01-01            1              tue

1 2019-01-02            2              wed

2 2019-01-03            3             thur

3 2019-01-04            4              fri

4 2019-01-05            5              sat

5 2019-01-06            6              sun

6 2019-01-07            0              mon

7 2019-01-08            1              tue

8 2019-01-09            2              wed

9 2019-01-10            3             thur


查看完整回答
反对 回复 2021-12-09
  • 1 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信