首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用数据帧加速应用功能

利用数据帧加速应用功能
EN

Stack Overflow用户
提问于 2016-11-13 18:05:14
回答 1查看 63关注 0票数 0

我有一个数据集,人口如下-

代码语言:javascript
复制
   RegionName     State  2000-01  2000-02  2000-03  2000-04 ...  2016-10  2016-11  2016-12
0  New York        NY      204      300      300      124    ...    456     566        344 
1  Mountain View   CA      204      300      300      124    ...    456     566        344 

数据集中几乎有~10K rows。对于此数据集,我希望从2000 to 2016中为每个季度的平均人口添加列。

我为apply编写了一个函数,如下所示-

代码语言:javascript
复制
import numpy as np
def quarterize(row):
   quarter_to_months_map = {
      'q1' : ['01', '02', '03'],
      'q2' : ['04', '05', '06'],
      'q3' : ['07', '08', '09'],
      'q4' : ['10', '11', '12']
   }
   for year in range(2000, 2017):
      year = '{}'.format(year)
      for quarter in quarter_to_months_map.keys():
          values = []
          for month in quarter_to_months_map[quarter]:
             values.append(row['{}-{}'.format(year, month)])
          row['{}{}'.format(year, quarter)] = np.nanmean(values)
      return row

df = df.apply(quarterize, axis = 1)

这工作良好,但较小的数据集,但~10K数据集,这将采取~10 min。有什么办法可以让这件事更有效率,更快呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-13 18:18:03

是。永远不要在行上操作,而是在列上操作。

与…有关的东西:

代码语言:javascript
复制
import numpy as np
import pandas as pd
import random

df = pd.DataFrame([[random.randint(150, 300) for x in range(12 * 10)] for _ in range(1000)],
                 columns=['{}-{:02d}'.format(year, month) for month in range(1,13) for year in range(2000, 2010)])

quarter_to_months_map = {
      'q1' : ['01', '02', '03'],
      'q2' : ['04', '05', '06'],
      'q3' : ['07', '08', '09'],
      'q4' : ['10', '11', '12']
   }

for year in range(2000, 2010):
    for quarter, months in quarter_to_months_map.items():
        months = ['{}-{}'.format(year, month) for month in months]
        df['{}{}'.format(year, quarter)] = df[months].mean(axis=1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40577070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档