- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个使用 pandas 面板生成 MultiIndex pandas DataFrame 的包。但是,每当我使用 pandas.Panel 时,都会收到以下 DeprecationError:
DeprecationWarning: Panel is deprecated and will be removed in a future version. The recommended way to represent these types of 3-dimensional data are with a MultiIndex on a DataFrame, via the Panel.to_frame() method. Alternatively, you can use the xarray package http://xarray.pydata.org/en/stable/. Pandas provides a
.to_xarray()
method to help automate this conversion.
但是,我不明白这里的第一个建议实际上是为了创建 MultiIndex DataFrames 而建议的。如果要删除 Panel,我将如何使用 Panel.to_frame?
澄清一下:我不是在问什么是弃用,或者如何将我的面板转换为 DataFrames。我要问的是,如果我在库中使用 pandas.Panel 然后使用 pandas.Panel.to_frame 从 3D ndarrays 创建 MultiIndex DataFrames,并且 Panels 将被弃用,那么制作这些 DataFrames 的最佳选择是什么使用面板 API?
例如,如果我正在执行以下操作,将 X 作为形状为 (N,J,K) 的 ndarray:
p = pd.Panel(X, items=item_names, major_axis=names0, minor_axis=names1)
df = p.to_frame()
尽管这是 this question 中推荐的方法,但这显然不再是 DataFrame 构建的可行的面向 future 的选项。 .
最佳答案
考虑以下面板:
data = np.random.randint(1, 10, (5, 3, 2))
pnl = pd.Panel(
data,
items=['item {}'.format(i) for i in range(1, 6)],
major_axis=[2015, 2016, 2017],
minor_axis=['US', 'UK']
)
如果将其转换为 DataFrame,则变为:
item 1 item 2 item 3 item 4 item 5
major minor
2015 US 9 6 3 2 5
UK 8 3 7 7 9
2016 US 7 7 8 7 5
UK 9 1 9 9 1
2017 US 1 8 1 3 1
UK 6 8 8 1 6
所以它以长轴和短轴为行MultiIndex,以项目为列。形状变成了 (6, 5),原来是 (5, 3, 2)。在何处使用 MultiIndex 取决于您,但如果您想要完全相同的形状,则可以执行以下操作:
data = data.reshape(5, 6).T
df = pd.DataFrame(
data=data,
index=pd.MultiIndex.from_product([[2015, 2016, 2017], ['US', 'UK']]),
columns=['item {}'.format(i) for i in range(1, 6)]
)
这会产生相同的 DataFrame(如果您想命名索引,请使用 pd.MultiIndex.from_product
的 names
参数):
item 1 item 2 item 3 item 4 item 5
2015 US 9 6 3 2 5
UK 8 3 7 7 9
2016 US 7 7 8 7 5
UK 9 1 9 9 1
2017 US 1 8 1 3 1
UK 6 8 8 1 6
现在,您可以使用 df['item 1']
(可选 df['item 1'],而不是
);而不是 pnl['item1 1']
)。解压()pnl.xs(2015)
你使用 df.xs(2015)
而不是 pnl.xs('US', axis='minor')
,你使用 df.xs('US', level=1)
。
如您所见,这只是将初始 3D numpy 数组 reshape 为 2D 的问题。您可以在 MultiIndex 的帮助下添加其他(人工)维度。
关于python - pandas.Panel 弃用警告实际推荐的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48482256/
这似乎是一个基本问题,但我已经尝试了一段时间并没有找到 Pyviz Panel 的解决方案: 我试图通过单击按钮来触发函数,捕捉函数的输出并将它们打印在屏幕上所需的位置。 with output ip
我正在尝试在销售订单屏幕上创建一个智能面板,它将显示与 SOLine 库存项目相关的项目。 我在库存项目页面上添加了一个选项卡和网格,并使用 CFBSUPSale 的 DAC 创建了一个表来创建此关系
需要这个: 但是得到这个: 我需要自定义绘制矩形来执行上述操作吗?另外我需要在面板内显示一个数字。有什么想法可以解决这个问题吗? 最佳答案 不要将第三个面板(水平面板)放在其他面板之一内。一旦所有三个
我正在使用 Ext JS 4.1.1 为网页创建 GUI。我尝试创建一个组件(下面的“GeneSearchComponent”),我可以在更复杂的布局中使用它。但出于某种原因,我无法将“GeneSea
我有这个面板。它按以下顺序显示工具图标:齿轮、关闭、折叠。我想得到的图标是这样的顺序:齿轮、折叠、关闭。我想不通。当我把 collapseFirst: true 放在第一位时,collapse 就在第
我正在使用 ExtJS 4.1.1a,我正在尝试为“tabbedPane”和带有“Accordion”布局的普通面板创建一个新主题。我无法更改每个标题的颜色。也就是说选项卡和选项卡的背景以及 Acco
根据MSDN - Panel.InternalChildren Property : Classes that are derived from Panel should use this prope
我有一个 Ext.Tab,Panel,我在其中动态创建了多个选项卡。 每个选项卡都包含一个 Ext.panel.panel。我需要做的是在选项卡中添加工具提示。我试图做这样的事情: Ext.defin
我有一个带有面板标题和面板主体的 Bootstrap v3 面板。我希望用户能够单击面板标题,它将折叠/展开面板主体。我正在使用 Bootstrap 的 Collapse javascript 来执行
我正在尝试在 ExtJS 中创建一个布局,它在顶部和底部的左右部分都有一个网格,一个基本的父/子、主/详细布局: wrapper_panel panel_top [grid] panel_bott
我正在使用 Extjs 6.0 开发网络 gis和 OpenLayers 3.6.0在 MVVM 架构中。我想把 ol.map到 Ext.panel.Panel .元素主视图如下: Ext.defin
我需要在 Python 中创建一个散布矩阵。我尝试使用 scatter_matrix 来实现此目的,但我只想保留对角线上方的散点图。 我正处于真正的开始阶段(没有走得太远),当列有名称(不是默认数字)
如果您在表单上创建一个面板并将其设置为 Dock=Top,然后放下另一个面板并设置其 Dock=Fill,它可能会填满整个表单,而忽略第一个面板。更改 Tab 键顺序没有任何作用。 最佳答案 停靠布局
我正在设计一个屏幕,其中标题有一个具有某些功能的按钮。为了实现这一点,我使用了 Ext.panel.Panel 现在我想在此屏幕中的标题下方添加列。这是我的代码: var screen = Ext.c
我有一个在 Ext.panel.Panel 上扩展的类。 简化代码: Ext.define("some.namespace.MyOwnPanel", { extends: "Ext.panel
在 Bootstrap 中,如何在单击另一个面板时使面板自动折叠,以便一次只打开一个面板?我不太擅长 JavaScript。 这里是一些示例代码: Information
我有一个主 JPanel,它实现了 Scrollable 并使用了 BorderLayout。它包含一个 NORTH 只读 JEditorPane、一个带有 FlowLayout 的 CENTER J
我正在用 wxPython 开发一个 GUI。我在另一个代表 CD 容器对象的正方形(也有 wxPanel 类)内绘制一个代表 CD 对象的正方形。我想在 CDWindow 的右键菜单中有“删除这张
我在第一个 div 中有两个字段集,然后我使用面板,但我的面板从 div 上方覆盖,请看下面的屏幕截图 1.) 带有文件集和详细信息2.) 添加面板后,Panel-heading to page 覆盖
我有一个 wx.Frame,其中有一个主 wx.Panel,里面有几个小部件。我想要那里的一个按钮导致出现“帮助面板”。这个帮助面板可能是一个 wx.Panel,我希望它覆盖整个主 wx.Panel(
我是一名优秀的程序员,十分优秀!