Python 熊猫时间序列重采样问题

Python 熊猫时间序列重采样问题,python,csv,pandas,dataframe,resampling,Python,Csv,Pandas,Dataframe,Resampling,我正在使用python 3.5.1和Pandas 0.18.0,并尝试使用它来修改财务刻度数据,因为我对这些练习感兴趣: 我对一些命令有问题,想知道这是否是由于python和pandas的版本造成的 例如: 这是我正在读取的文件及其相关输出: data = pd.read_csv('test30dayes2tickforpython.csv',index_col=0, header=0,parse_dates={"Timestamp" : [0,1]}) data.dtypes O

我正在使用python 3.5.1和Pandas 0.18.0,并尝试使用它来修改财务刻度数据,因为我对这些练习感兴趣:

我对一些命令有问题,想知道这是否是由于python和pandas的版本造成的

例如:

这是我正在读取的文件及其相关输出:

data = pd.read_csv('test30dayes2tickforpython.csv',index_col=0,        header=0,parse_dates={"Timestamp" : [0,1]})
data.dtypes
Out[80]:
 Open              float64
 High              float64
 Low               float64
 Last              float64
 Volume              int64
 NumberOfTrades      int64
 BidVolume           int64
 AskVolume           int64
dtype: object
当我尝试创建另一个对象时,如下所示:

ticks = data.ix[:, ['High','Volume']]
ticks
我得到了一些价值观:

    High    Volume
Timestamp       
2015-12-27 23:00:25.000 NaN NaN
2015-12-27 23:01:11.000 NaN NaN
但如果我使用列引用而不是名称,它会起作用:

ticks = data.ix[:, [1,4]]
ticks


High    Volume
Timestamp       
2015-12-27 23:00:25.000 2045.25 1
2015-12-27 23:01:11.000 2045.50 2
为什么会这样

此外,笔记本还显示了创建的另一个对象:

bars = ticks.Price.resample('1min', how='ohlc')
bars
当我尝试此操作时,会出现以下错误:

bars = ticks.High.resample('60min', how='ohlc')
bars
1条=滴答声。高。重新采样('60分钟','how='ohlc')
AttributeError:“DataFrame”对象没有属性“High”

如果我不调用High列,它会起作用:

bars = ticks.resample('60min', how='ohlc')
bars
FutureWarning:in.resample()如何被弃用新语法是.resample(…).ohlc()

请问正确的命令是什么


我很感激笔记本对我使用的Python/Pandas版本可能无效,但作为一名新手,它对我非常有用,因此我希望它能在我的上运行。

在列名中存在问题
空格

print (data.columns)
Index(['Timestamp', ' Open', ' High', ' Low', ' Last', ' Volume',
       ' NumberOfTrades', ' BidVolume', ' AskVolume'],
      dtype='object')
您可以在以下空间中选择此选项:

data.columns = data.columns.str.strip()
print (data.columns)
Index(['Timestamp', 'Open', 'High', 'Low', 'Last', 'Volume', 'NumberOfTrades',
       'BidVolume', 'AskVolume'],
      dtype='object')

ticks = data.ix[:, ['High','Volume']]
print (ticks.head())
      High  Volume
0  2045.25       1
1  2045.50       2
2  2045.50       2
3  2045.50       2
4  2045.50       2
现在您可以使用:

print (ticks.Price.resample('1min', how='ohlc'))
如果不想删除空格,请在列名中添加空格:

print (ticks[' Price'].resample('1min', how='ohlc'))
但如果
pandas
版本更高为
0.18.0
,则使用更好:

print (ticks.Price.resample('1min').ohlc())
print (ticks.Price.resample('1min').ohlc())