在pandas中重塑以下数据帧的最佳方法是什么?这个数据帧df
具有x,y
值对于每个样品(s1
和s2
在这种情况下),看起来像这样:
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 …
我希望能够创建n-dimensional
数据框。 我听说过一种使用panels
in 的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) 我是 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)