Python 如何使数据帧不删除最后一个小数点?
通过dataframe传递数据时,删除最后一个小数点Python 如何使数据帧不删除最后一个小数点?,python,dataframe,Python,Dataframe,通过dataframe传递数据时,删除最后一个小数点 b= self.client.Trade.Trade_getBucketed( binSize=self.timeframe, partial=True, symbol='EOSZ19', count=1, reverse=True ).result()[0] print (b) cd = parse_
b= self.client.Trade.Trade_getBucketed(
binSize=self.timeframe,
partial=True,
symbol='EOSZ19',
count=1,
reverse=True
).result()[0]
print (b)
cd = parse_dataframe(b)
print (cd)
打印(b)返回给我:
[{'timestamp': datetime.datetime(2019, 10, 4, 0, 40, tzinfo=tzutc()),
'symbol': 'EOSZ19', 'open': 0.0003728, 'high': 0.0003728, 'low':
0.0003728, 'close': 0.0003728, 'trades': 0, 'volume': 0, 'vwap': None,
'lastSize': 0, 'turnover': 0, 'homeNotional': 0.0, 'foreignNotional':
0.0}]
date open high low close volume
0 2019-10-04 00:40:00+00:00 0.000373 0.000373 0.000373 0.000373 0
但是打印(cd)返回给我:
[{'timestamp': datetime.datetime(2019, 10, 4, 0, 40, tzinfo=tzutc()),
'symbol': 'EOSZ19', 'open': 0.0003728, 'high': 0.0003728, 'low':
0.0003728, 'close': 0.0003728, 'trades': 0, 'volume': 0, 'vwap': None,
'lastSize': 0, 'turnover': 0, 'homeNotional': 0.0, 'foreignNotional':
0.0}]
date open high low close volume
0 2019-10-04 00:40:00+00:00 0.000373 0.000373 0.000373 0.000373 0
删除最后一个小数点,
我需要:
date open high low close volume
0 2019-10-04 00:40:00+00:00 0.0003728 0.0003728 0.0003728 0.0003728 0
不要去掉最后一个小数
b= self.client.Trade.Trade_getBucketed(
binSize=self.timeframe,
partial=True,
symbol='EOSZ19',
count=1,
reverse=True
).result()[0]
print (b)
cd = parse_dataframe(b)
print (cd)
data_frame函数来自util:
from pandas import DatetimeIndex, merge, DataFrame, to_datetime
from configuration import TICKER_INTERVAL_MINUTES
def parse_dataframe1(ticker: list) -> DataFrame:
"""
builds dataframe based on the given trades
:param ticker: see /trade/bucketed API
:return: DataFrame
"""
cols = ['timestamp', 'symbol', 'open', 'high', 'low', 'close', 'trades',
'volume', 'vwap', 'lastSize', 'turnover', 'homeNotional',
'foreignNotional']
frame = DataFrame(ticker, columns=cols)
# drop unnecessary columns
frame.drop(['symbol', 'trades', 'vwap', 'lastSize', 'turnover',
'homeNotional', 'foreignNotional'], axis=1)
# rename timestamp column Y
frame = frame.rename(columns={'timestamp': 'date'})
# reformat date column
frame['date'] = to_datetime(frame['date'],
unit='ms',
utc=True,
infer_datetime_format=True)
# group by index and aggregate results to eliminate duplicate ticks
frame = frame.groupby(by='date', as_index=False, sort=True).agg({
'open': 'first',
'high': 'max',
'low': 'min',
'close': 'last',
'volume': 'max',
})
#frame.drop(frame.tail(1).index, inplace=True) # eliminate partial candle
return frame
在这里,data_frame函数没有在7位小数点后舍入,因为他回答:jasonharper在控制台上显示的正确解决方案是:
pd.set_option('precision', 7)
但是,如果我们保存变量并再次打印,我们将看到完整的数据parse_dataframe函数从何而来?对不起,我已经编辑过了。您几乎可以肯定的是,我们看到的只是四舍五入显示的值;任何计算或其他直接使用这些值的操作都将以完全原始精度访问它们。您可以使用
pd.set_选项('precision',7)
更改显示舍入。我不知道那种方法。。。但我该把这条线放在哪里呢?