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

我有一张熊猫桌。在列中有时间戳。我已经将该时间戳解析为可以理解的内容。我也已经将星期几作为整数。我想要的是添加一个带有星期几名称的新列。我有一个名字列表(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 万行。我相信大熊猫有更好的方法来做到这一点。使用另一列中的值作为列表的索引以便用值填充新列似乎是很常见的事情。


感谢您的帮助。


交互式爱情
浏览 192回答 1
1回答

慕哥6287543

pandas 有一个内置函数,称为day_name:# sample datadf = pd.DataFrame(pd.date_range('2019-01-01', '2019-01-10'))# use day_namedf['day of week'] = df[0].dt.day_name()           0 day of week0 2019-01-01     Tuesday1 2019-01-02   Wednesday2 2019-01-03    Thursday3 2019-01-04      Friday4 2019-01-05    Saturday5 2019-01-06      Sunday6 2019-01-07      Monday7 2019-01-08     Tuesday8 2019-01-09   Wednesday9 2019-01-10    Thursday或者你可以map用一个字典:# sample datadf = pd.DataFrame(pd.date_range('2019-01-01', '2019-01-10'))# int of day of weekdf['day_of_week'] = df[0].dt.dayofweek# map with a dictdf['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_name0 2019-01-01            1              tue1 2019-01-02            2              wed2 2019-01-03            3             thur3 2019-01-04            4              fri4 2019-01-05            5              sat5 2019-01-06            6              sun6 2019-01-07            0              mon7 2019-01-08            1              tue8 2019-01-09            2              wed9 2019-01-10            3             thur
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python