首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫:在Dataframe储存Dataframe

熊猫:在Dataframe储存Dataframe
EN

Stack Overflow用户
提问于 2017-10-09 13:54:01
回答 3查看 6.1K关注 0票数 2

我对Pandas相当陌生,当我尝试在Dataframe中插入一个Dataframe时,目前遇到了一个问题。

我想做的是:我有多个模拟和相应的信号文件,我希望它们都在一个大的DataFrame中。所以我想要一个DataFrame,它有我所有的模拟参数,也有我的信号作为嵌套的DataFrame。它应该是这样的:

代码语言:javascript
复制
SimName | Date | Parameter 1 | Parameter 2 |  Signal 1 |  Signal 2 |
Name 1  | 123  | XYZ         | XYZ         | DataFrame | DataFrame |
Name 2  | 456  | XYZ         | XYZ         | DataFrame | DataFrame |

其中,SimName是我的大DataFrame索引,信号1和信号2中的每个条目都是一个个性化的DataFrame。

我的想法是这样实施:

代码语言:javascript
复制
big_DataFrame['Signal 1'].loc['Name 1']

但是这导致了一个ValueError:

不兼容DataFrame索引器

在Pandas中可以使用这个嵌套的DataFrames吗?

尼科

EN

回答 3

Stack Overflow用户

发布于 2017-12-27 19:45:27

Ns63sr的回答末尾引用的‘指针’可以实现为一个类,例如.

定义:

代码语言:javascript
复制
class df_holder:
    def __init__(self, df): 
        self.df = df

集合:

代码语言:javascript
复制
df.loc[0,'df_holder'] = df_holder(df)

得到:

代码语言:javascript
复制
df.loc[0].df_holder.df
票数 1
EN

Stack Overflow用户

发布于 2017-10-09 14:20:51

文档说只有Series才能在DataFrame中。然而,传递DataFrames似乎也有效。下面是一个假设所有列都不在MultiIndex中的示例

代码语言:javascript
复制
import pandas as pd

signal_df = pd.DataFrame({'X': [1,2,3],
                          'Y': [10,20,30]}  )

big_df = pd.DataFrame({'SimName': ['Name 1','Name 2'],
                       'Date ':[123  , 456 ],
                       'Parameter 1':['XYZ', 'XYZ'],
                       'Parameter 2':['XYZ', 'XYZ'],
                       'Signal 1':[signal_df, signal_df],
                       'Signal 2':[signal_df, signal_df]}  )

big_df.loc[0,'Signal 1']
big_df.loc[0,'Signal 1'][X]

这导致:

代码语言:javascript
复制
out1:    X  Y
      0  1  10
      1  2  20
      2  3  30

out2: 0    1
      1    2
      2    3
      Name: X, dtype: int64

如果嵌套数据文件不能正常工作,您可以实现存储在big_df中的某种类型的指针,这些指针允许您访问存储在其他地方的信号数据。

票数 0
EN

Stack Overflow用户

发布于 2017-10-09 15:00:51

而不是big_DataFrame['Signal 1'].loc['Name 1'],您应该使用

代码语言:javascript
复制
big_DataFrame.loc['Name 1','Signal 1']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46648167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档