避免使用datetimeindex的嵌套循环

时间:2018-03-23 09:30:03

标签: python python-2.7 performance pandas

我正在尝试尽可能高效和pythonic编码(尽可能避免循环),我发现thisthis但它们似乎与我的问题无关。 / p>

考虑一个名为pd.DataFrame的{​​{1}},其中包含28个国家/地区30年的小时数据:

  • 索引:df(例如datetime64[ns])和
  • 列:28个国家/地区中每个国家/地区的2位数国家/地区代码。

e.g。

'1980-01-01 00:00:00'

为了分别为每个国家/地区创建年度箱图,例如通过countrycode AT BE [...] time 1980-01-01 00:00:00 0.016947 0.059076 1980-01-01 01:00:00 0.019461 0.068575 [...] 2009-31-12 23:00:00 0.119735 0.287495 ,我打算将此DataFrame转换为以下格式:

  • 列:ds[country].plot(kind='box'),例如pd.MultiIndex,例如('AT',1980),('AT',1981),...
  • 索引:(countrycode, year)例如(0,1,... 8759)

我提出的代码片段效果很好,但是由于嵌套循环它的速度很慢:

range(8760)

非常欢迎任何更有效地编写此部分代码的想法:)

1 个答案:

答案 0 :(得分:0)

df.groupby(['countrycode','year']).size().unstack().plot(kind='box')