4
偉大的以下工作:pandas.merge莫名其妙地慢
times1h = pandas.DatetimeIndex(start='2010-01-01', end='2014-01-01', freq='1h')
times10min = pandas.DatetimeIndex(start='2010-01-01', end='2014-01-01', freq='10T')
wind=pandas.DataFrame({'wind':0}, index=times1h)
power=pandas.DataFrame({'power':0}, index=times10min)
%timeit pandas.merge(wind, power, how='inner', left_index=True, right_index=True)
100 loops, best of 3: 5.2 ms per loop
以下是莫名其妙地慢。我只是做了第一個數據幀非唯一的時間戳,並將它作爲一列,而不是作爲一個指標:
times1h = pandas.DatetimeIndex(start='2010-01-01', end='2014-01-01', freq='1h')
times10min = pandas.DatetimeIndex(start='2010-01-01', end='2014-01-01', freq='10T')
wind=pandas.DataFrame({'time':pandas.concat([pandas.Series(times1h), pandas.Series(times1h)]), 'wind':0})
power=pandas.DataFrame({'power':0}, index=times10min)
%timeit pandas.merge(wind, power, how='inner', left_on='time', right_index=True)
1 loops, best of 3: 16.6 s per loop
這是爲什麼這麼多慢?我能做些什麼嗎?
我想獲得一組(x,y)點的功率曲線擬合。
我用熊貓0.13.1,因爲它是包含在WinPython的一個:)
你需要顯示輸入幀(或者至少是df.info()) – Jeff 2014-08-28 13:44:37
是的,我在我的更新中提供了df.info()等。 也許我需要做一個完整的例子,運行並演示性能問題 – 2014-08-28 13:50:12
是複製可執行示例是最好的! – Jeff 2014-08-28 14:00:21