Python 熊猫时间序列重采样问题
我正在使用python 3.5.1和Pandas 0.18.0,并尝试使用它来修改财务刻度数据,因为我对这些练习感兴趣: 我对一些命令有问题,想知道这是否是由于python和pandas的版本造成的 例如: 这是我正在读取的文件及其相关输出: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
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())