python – 加快列转换

假设我有一个大型数据框,并且我想对列中的每个元素应用一个操作.

有没有比以下更快的方式:

get_weekday = lambda x: time.strptime(str(x), '%d%m%Y').tm_wday
df['date'] = df['date'].apply(get_weekday)

解决方法:

在当前主/ 0.15.0

df['date'].dt.weekday

在以前的版本中

pd.DatetimeIndex(df['date']).weekday

这是一个时间示例

In [16]: s = Series(date_range('20130101',freq='s',periods=100000))

In [17]: %timeit s.dt.weekday
10 loops, best of 3: 50.8 ms per loop

In [18]: s2 = s.apply(str)

In [19]: %timeit s.apply(lambda x: time.strptime(str(x), "%Y-%m-%d %H:%M:%s").tm_wday)
1 loops, best of 3: 2.65 s per loop

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...