我试图使用quantopian qgrid在iPython笔记本中打印数据帧。基于示例notebook的简单示例:
import qgrid
qgrid.nbinstall(overwrite=True)
qgrid.set_defaults(remote_js=True, precision=2)
from pandas import Timestamp
from pandas_datareader.data import get_data_yahoo
data = get_data_yahoo(symbols='SPY',
start=Timestamp('2014-01-01'),
end=Timestamp('2016-01-01'),
adjust_price=True)
qgrid.show_grid(data, grid_options={'forceFitColumns': True})
除精度算法外,如何格式化列数据?似乎有可能传递grid options像formatterFactory或defaultFormatter,但不清楚如何将它们用于天真的用户。
另一种question建议的替代方法,但我喜欢SlickGrid对象提供的交互。
任何帮助或建议非常感谢。
答案 0 :(得分:1)
简短回答是,大多数网格选项都通过grid_options
作为字典传递,例如:
grid_options需要一个字典,例如用于设置特定网格的选项:
qgrid.show_grid(data,
grid_options={'fullWidthRows': True,
'syncColumnCellResize': True,
'forceFitColumns': True,
'rowHeight': 40,
'enableColumnReorder': True,
'enableTextSelectionOnCells': True,
'editable': True})
请参阅详情here
答案 1 :(得分:0)
我使用df.round更改了浮点格式(使用column_definitions更改格式很有用)。
无论如何,滑块过滤器与列中的值不一致,为什么?
import pandas as pd
import qgrid
import numpy as np
col_def = { 'B': {"Slick.Editors.Float.DefaultDecimalPlaces":2}}
np.random.seed(25)
df = pd.DataFrame(np.random.random([5, 4]), columns =["A", "B", "C", "D"])
df = df.round({"A":1, "B":2, "C":3, "D":4})
qgrid_widget = qgrid.show_grid(df, show_toolbar=True, column_definitions=col_def)
qgrid_widget