使用Python在Pandas dataframe中创建星期列
我想将一个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'
谢谢你的帮助,詹姆斯
7条答案
按热度按时间hwazgwia1#
使用
dt.weekday_name
是deprecated sincepandas 0.23.0
,而不是使用dt.day_name()
:fiei3ece2#
以防万一.dt不适合你。尝试.DateTimeIndex可能会有帮助。希望代码和我们的测试结果能帮助你修复它。
k7fdbhmy3#
date为索引时
...而且只需要前三个字母:
omjgkv6w4#
data['Day_Of_Week'] = pd.DatetimeIndex(data['Birth_Date']).day_name()
命令将新列/特征追加为data ['Birth_Date']列中的data ['Day_Of-Week'],该列先前存在于dataset/csv中。
30byixjq5#
Pandas0.23+
使用
pandas.Series.dt.day_name()
,因为pandas.Timestamp.weekday_name
已被弃用:输出:
Pandas0.18.1+
正如用户jezrael在下面指出的,
dt.weekday_name
是在0.18.1 Pandas Docs版本中添加的。输出:
原始答案:
使用这个:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.dayofweek.html
看这个:
Get weekday/day-of-week for Datetime column of DataFrame
如果你想要一个字符串而不是一个整数,可以这样做:
输出:
iyfamqjs6#
使用
dt.day_name
:assign
的另一个解决方案:ws51t4hk7#
dayofweek
为数字格式