当前位置: 首页 > 面试题库 >

使用Python在Pandas数据框中创建星期几列

寿和通
2023-03-14
问题内容

使用Python在Pandas数据框中创建星期几列

我想将csv文件读取到pandas数据框中,将一列日期从字符串格式解析为日期对象,然后生成一个新列以指示星期几。

这是我正在尝试的:

我想做的是这样的:

import pandas as pd

import csv

df = pd.read_csv('data.csv', parse_dates=['date']))

df['day-of-week'] = df['date'].weekday()


AttributeError: 'Series' object has no attribute 'weekday'

感谢您的帮助。


问题答案:

pandas0.23+

使用pandas.Series.dt.day_name(),因为pandas.Timestamp.weekday_name已弃用:

import pandas as pd


df = pd.DataFrame({'my_dates':['2015-01-01','2015-01-02','2015-01-03'],'myvals':[1,2,3]})
df['my_dates'] = pd.to_datetime(df['my_dates'])

df['day_of_week'] = df['my_dates'].dt.day_name()

输出:

    my_dates  myvals day_of_week
0 2015-01-01       1    Thursday
1 2015-01-02       2      Friday
2 2015-01-03       3    Saturday

熊猫0.18.1+

正如用户jezrael指出的那样,dt.weekday_name已在版本0.18.1中添加了 Pandas
Docs

import pandas as pd

df = pd.DataFrame({'my_dates':['2015-01-01','2015-01-02','2015-01-03'],'myvals':[1,2,3]})
df['my_dates'] = pd.to_datetime(df['my_dates'])
df['day_of_week'] = df['my_dates'].dt.weekday_name

输出:

    my_dates  myvals day_of_week
0 2015-01-01       1    Thursday
1 2015-01-02       2      Friday
2 2015-01-03       3    Saturday

原始答案:

用这个:

http://pandas.pydata.org/pandas-
docs/stable/generated/pandas.Series.dt.dayofweek.html

看到这个:

获取DataFrame的Datetime列的工作日/星期几

如果要使用字符串而不是整数,请执行以下操作:

import pandas as pd

df = pd.DataFrame({'my_dates':['2015-01-01','2015-01-02','2015-01-03'],'myvals':[1,2,3]})
df['my_dates'] = pd.to_datetime(df['my_dates'])
df['day_of_week'] = df['my_dates'].dt.dayofweek

days = {0:'Mon',1:'Tues',2:'Weds',3:'Thurs',4:'Fri',5:'Sat',6:'Sun'}

df['day_of_week'] = df['day_of_week'].apply(lambda x: days[x])

输出:

    my_dates  myvals day_of_week
0 2015-01-01       1       Thurs
1 2015-01-02       2         Fri
2 2015-01-01       3       Thurs


 类似资料:
  • 问题内容: 如何获得给定星期几的第一天? 例如,当我写这篇文章时,我们在 WEEK 29。* 我想编写一个MySQL查询,它将使用 WEEKNO 29 作为唯一可用参数返回 7月18日星期日 。 * 问题答案: 您可以使用: 这将为您提供2010年第3周的星期一日期,即2010-01-18。 另一个例子: 请给您2010年第52周的星期日日期,即2010-12-26。 最后,使用原始示例: 这给出

  • 本文向大家介绍如何从R中的数据框中查找星期几?,包括了如何从R中的数据框中查找星期几?的使用技巧和注意事项,需要的朋友参考一下 可以通过使用平日功能来完成。 示例

  • 我正在制作一个应用程序,要求用户为定期事件选择时间和星期几。我已经实现了一个 对话框,但我似乎找不到一个用于选择星期几的对话框。我试过,但这仅适用于月份中的某一天。我能做什么?

  • 问题内容: 创建给定大小的零填充熊猫数据框的最佳方法是什么? 我用过了: 有更好的方法吗? 问题答案: 您可以尝试以下方法:

  • 问题内容: 我有一个日期和字符串类似于的熊猫数据框: 我需要将其扩展/转换为以下内容,在“ 开始” 和“ 结束” 列之间填写几周(W-SAT),然后向前填充“ 注释” 和“ 项目”中 的数据: 用pandas做到这一点的最佳方法是什么?某种多索引适用吗? 问题答案: 您可以遍历每一行并创建一个新的数据框,然后将它们连接在一起

  • 问题内容: 我创建了一个方法,该方法应该采用“ YYYY-MM- DD”形式的字符串,并吐出一个int,该int表示相对于它所在的星期的日期位置(无论两个月之间是否重叠)。因此,例如,sunday = 1 monday = 2,依此类推。 这是我的代码: 我知道这是错误的,但是我尝试了大多数逻辑组合。并且也搞砸了二手或二手。 这是我使用方式的选择: 我不清楚,因为没有DayOfWeekUnit选项