相关疑难解决方法(0)

基于列标签重塑pandas中的数据帧

在pandas中重塑以下数据帧的最佳方法是什么?这个数据帧df具有x,y值对于每个样品(s1s2在这种情况下),看起来像这样:

In [23]: df = pandas.DataFrame({"s1_x": scipy.randn(10), "s1_y": scipy.randn(10), "s2_x": scipy.randn(10), "s2_y": scipy.randn(10)})
In [24]: df
Out[24]: 
       s1_x      s1_y      s2_x      s2_y
0  0.913462  0.525590 -0.377640  0.700720
1  0.723288 -0.691715  0.127153  0.180836
2  0.181631 -1.090529 -1.392552  1.530669
3  0.997414 -1.486094  1.207012  0.376120
4 -0.319841  0.195289 -1.034683  0.286073
5  1.085154 -0.619635  0.396867  0.623482
6  1.867816 -0.928101 -0.491929 -0.955295
7  0.920658 -1.132057  1.701582 -0.110299
8 -0.241853 -0.129702 -0.809852  0.014802
9 -0.019523 -0.578930  0.803688 -0.881875
Run Code Online (Sandbox Code Playgroud)

s1_x …

python numpy scipy multi-index pandas

12
推荐指数
1
解决办法
1万
查看次数

如何创建超过 2 个维度的 Pandas 数据框?

我希望能够创建n-dimensional数据框。 我听说过一种使用panelsin 的3D 数据帧的方法,pandas但如果可能的话,我想通过将不同的数据集组合成一个超级数据帧来将维度扩展到 3 个维度

我试过了,但我不知道如何将这些方法用于我的测试数据集 -> 构建 3D Pandas DataFrame

此外,这对我的情况没有帮助 -> Pandas Dataframe 或 Panel to 3d numpy array

我用任意轴数据制作了一个随机测试数据集,试图模拟真实情况;有 3 个轴(即患者、年份和样本)。我尝试将一堆数据框添加到列表中,然后用它制作一个数据框,但它不起作用:(我什至尝试了panel上面第二个链接中的一个,但我也无法让它工作。

有人知道如何创建带有标签的 N 维熊猫数据框吗?

我尝试的第一种方法:

#Reproducibility
np.random.seed(1618033)

#Set 3 axis labels/dims
axis_1 = np.arange(2000,2010) #Years
axis_2 = np.arange(0,20) #Samples
axis_3 = np.array(["patient_%d" % i for i in range(0,3)]) #Patients

#Create random 3D array to simulate data from dims above
A_3D = np.random.random((years.size, samples.size, len(patients))) #(10, 20, …
Run Code Online (Sandbox Code Playgroud)

arrays numpy multidimensional-array dataframe pandas

6
推荐指数
2
解决办法
2万
查看次数

在 Pandas DataFrame 中存储 3 维数据

我是 Python 新手,我正在尝试了解如何使用 Pandas DataFrames 操作数据。我搜索了类似的问题,但没有看到任何满足我的确切需求的问题。如果这是重复的,请指出正确的帖子。

所以我有多个具有完全相同的形状、列和索引的 DataFrame。我如何将它们与标签结合起来,以便我可以轻松访问带有任何列/索引/标签的数据?

例如,在下面的设置之后,如何将 df1 和 df2 放入一个 DataFrame 并用名称“df1”和“df2”标记它们,以便我可以像 df['A']['df1'] 这样的方式访问数据['b'],并获取 df 的行数?

>>> import numpy as np
>>> import pandas as pd
>>> df1 = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'], index=['a', 'b'])
>>> df2 = pd.DataFrame([[5, 6], [7, 8]], columns=['A', 'B'], index=['a', 'b'])
>>> df1
   A  B
a  1  2
b  3  4
>>> df2
   A  B
a  5  6
b  7  8
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
8483
查看次数