【问题标题】:how to convert a set of matrices into a data frame in pandas?如何将一组矩阵转换为熊猫中的数据框?
【发布时间】:2021-08-03 09:46:56
【问题描述】:

我有四个时间点矩阵,A0、A1、A2 和 A3,它们是 m*n 矩阵。我想在 pandas 中制作一个涉及这些矩阵的数据框,每当我调用它们时,我都可以轻松访问它们。这可能吗?

例如A0=np.array([1,2,3],[3,4,5])A1=np.array([0,2,0],[3,4,0]),... 然后当我使用df=pd.DataFrame([A0, A1, A2, A3], columns=['day_0','day_1','day_2','day_3']) 我收到了这个错误 传递值的形状为 (4, 1),索引表示 (4, 4)。

【问题讨论】:

  • 您能否更具体地了解您的矩阵的外观?文件、列表、字典等...
  • 它们是np.array,比如A0=np.array([[1,2,3],[3,4,5]])
  • pd.DataFrame(A0)?
  • 问题是我有四个矩阵
  • 它们的列数是否相同?

标签: python pandas dataframe matrix


【解决方案1】:

numpy 和 pandas 在许多内置函数中是兼容的。

import numpy as np
numpy_data = np.array([[1, 2], [3, 4]])
df = pd.DataFrame(data=numpy_data)

# If you know your column names
column_names = ['first_col', 'second_col']
df = pd.DataFrame(data=numpy_data, columns=column_names )

因此,对于您的示例,使用它然后连接所有数据帧。

import numpy as np
import pandas as pd

df_A0 = pd.DataFrame(data=A0)
df_A1 = pd.DataFrame(data=A1)
df_A2 = pd.DataFrame(data=A2)
df_A3 = pd.DataFrame(data=A3)

df_names = ['A0', 'A1', 'A2', 'A3']
df_global = pd.concat([df_A0, df_A1, df_A2, df_A3], keys=df_names)

【讨论】:

  • 那么这里 df_global 是一个 3 列的矩阵,我想要的是在 df_global 中,当我想访问 A0 时,调用例如 df_global[0] 并获取 A0
  • 那你想设置一些键,我编辑了答案
  • 不,我希望每个块都有一个名称而不是每个列都有一个名称
  • 你能在问题中显示你想要的输出吗?你想要 1 个数据框吗?此数据框的列表?更精确
猜你喜欢
  • 2020-12-09
  • 2021-12-14
  • 2017-08-27
  • 2019-04-27
  • 1970-01-01
  • 2017-12-19
  • 2020-05-10
  • 1970-01-01
  • 2019-04-23
相关资源
最近更新 更多