Python 如何将lambda函数应用于数据帧中的时间戳列
我有一个带有时间戳列的数据帧,iam使用lambda函数对该列执行操作。当我这样做时,我得到以下错误:Python 如何将lambda函数应用于数据帧中的时间戳列,python,pandas,Python,Pandas,我有一个带有时间戳列的数据帧,iam使用lambda函数对该列执行操作。当我这样做时,我得到以下错误: row['date'] = pd.Timestamp(row['date']).apply(lambda t: t.replace(minute=15*(t.minute//15)).strftime('%H:%M')) AttributeError: 'Timestamp' object has no attribute 'apply' 我怎样才能在熊猫身上做到这一点 example:
row['date'] = pd.Timestamp(row['date']).apply(lambda t: t.replace(minute=15*(t.minute//15)).strftime('%H:%M'))
AttributeError: 'Timestamp' object has no attribute 'apply'
我怎样才能在熊猫身上做到这一点
example: output:
05:06 05:00
05:20 05:15
09:18 09:15
10:03 10:00
似乎您需要将列转换为日期时间
,而不是时间戳
-它只转换:
编辑:
另一种解决方案,但输出不同:
df['date'] = pd.to_datetime(df['a']).dt.round('15min').dt.strftime('%H:%M')
要检查输出,您可以使用:
L = ['5:' + str(x).zfill(2) for x in range(60)]
df = pd.DataFrame({'a':L})
#print (df)
df['date1'] = pd.to_datetime(df['a']).dt.round('15min').dt.strftime('%H:%M')
df['date'] = pd.to_datetime(df['a'])
.apply(lambda t: t.replace(minute=15*(t.minute//15)))
.dt.strftime('%H:%M')
我以前也尝试过同样的方法,尽管我得到了相同的错误。你能添加一些示例-5-6行,并具有所需的输出吗?我添加到回答测试数据帧,请检查。我尝试了这两个示例,但仍然得到错误:时间戳是:2017-02-07 16:40:00 to_datetime是:1486485600000000000回溯(最近一次调用):文件“Quarter_Hr_calc.py”,第45行,在main()文件“Quarter_Hr_calc.py”中,第42行,在main QuarterHr()中文件“Quarter_Hr_calc.py”,第32行,在QuarterHr行['qtr_Hr']=pd.to_datetime(行['date']).apply(lambda t:t.replace(minute=15*(t.minute//15)).dt.strftime('%H:%M')AttributeError:'Timestamp'对象没有属性'apply'您的版本是什么<代码>打印pd.显示版本()
df['date'] = pd.to_datetime(df['a']).dt.round('15min').dt.strftime('%H:%M')
L = ['5:' + str(x).zfill(2) for x in range(60)]
df = pd.DataFrame({'a':L})
#print (df)
df['date1'] = pd.to_datetime(df['a']).dt.round('15min').dt.strftime('%H:%M')
df['date'] = pd.to_datetime(df['a'])
.apply(lambda t: t.replace(minute=15*(t.minute//15)))
.dt.strftime('%H:%M')
print (df)
a date1 date
0 5:00 05:00 05:00
1 5:01 05:00 05:00
2 5:02 05:00 05:00
3 5:03 05:00 05:00
4 5:04 05:00 05:00
5 5:05 05:00 05:00
6 5:06 05:00 05:00
7 5:07 05:00 05:00
8 5:08 05:15 05:00
9 5:09 05:15 05:00
10 5:10 05:15 05:00
11 5:11 05:15 05:00
12 5:12 05:15 05:00
13 5:13 05:15 05:00
14 5:14 05:15 05:00
15 5:15 05:15 05:15
16 5:16 05:15 05:15
17 5:17 05:15 05:15
18 5:18 05:15 05:15
19 5:19 05:15 05:15
20 5:20 05:15 05:15
21 5:21 05:15 05:15
22 5:22 05:15 05:15
23 5:23 05:30 05:15
24 5:24 05:30 05:15
25 5:25 05:30 05:15
26 5:26 05:30 05:15
27 5:27 05:30 05:15
28 5:28 05:30 05:15
29 5:29 05:30 05:15
30 5:30 05:30 05:30
31 5:31 05:30 05:30
32 5:32 05:30 05:30
33 5:33 05:30 05:30
34 5:34 05:30 05:30
35 5:35 05:30 05:30
36 5:36 05:30 05:30
37 5:37 05:30 05:30
38 5:38 05:45 05:30
39 5:39 05:45 05:30
40 5:40 05:45 05:30
41 5:41 05:45 05:30
42 5:42 05:45 05:30
43 5:43 05:45 05:30
44 5:44 05:45 05:30
45 5:45 05:45 05:45
46 5:46 05:45 05:45
47 5:47 05:45 05:45
48 5:48 05:45 05:45
49 5:49 05:45 05:45
50 5:50 05:45 05:45
51 5:51 05:45 05:45
52 5:52 05:45 05:45
53 5:53 06:00 05:45
54 5:54 06:00 05:45
55 5:55 06:00 05:45
56 5:56 06:00 05:45
57 5:57 06:00 05:45
58 5:58 06:00 05:45
59 5:59 06:00 05:45