【发布时间】:2020-08-18 17:05:53
【问题描述】:
我有一个数据框,其中包含来自源 data 的一些记录数据:
t min max ... some_value
0.0 0.0 0.0 ... 0.0
5.0 0.0 2.4 ... 1.9
10.0 0.0 6.7 ... 4.6
... ... ... ... ...
我还有一个数据框,其中包含有关来源的信息,source:
type location some_info
A loc info
我现在想将source 添加到data 中,因为我有多个来源的数据以及访问与当前数据对应的来源的相关信息,因此我可以轻松地从所选来源获取所有数据.
我的想法是以我有类似的方式使用多索引来做到这一点
data
t min max ... some_value
source
type location some_info
A loc info 0.0 0.0 0.0 ... 0.0
5.0 0.0 2.4 ... 1.9
10.0 0.0 6.7 ... 4.6
... ... ... ... ... ... ... ...
这可以通过简单的串联来完成吗?感觉会比这更棘手。
如果可能,我希望能够遍历包含来自多个来源的数据的数据框中的来源,如下所示:
for source in full_frame.index:
source_data = full_frame[source,:]
do_something(source_data)
如果这种方法看起来过于复杂,请告诉我。
编辑:更新了想要的结果的外观
【问题讨论】:
-
在不了解
do_something(source_data)的情况下,假设您有很多位置,每个位置都有一个data框架,那么最简单的方法就是向source数据框添加一个引用[名称的]对应的data帧,分两步获取数据。我认为在这种情况下,单独管理数据的便利性超过了制作单个“宽”数据框的任何好处。 -
所以您的意思是在
source中添加一列,例如source['ref']=data? -
不,引用
data。可能是唯一标识每个data数据帧的字符串名称。正如我所说,我不知道您的用例,但替代方法是多值列 [每个单元格中的列表] 用于data列,这可能更容易管理,也可能不容易管理。 -
我主要是想分析不同来源的数据,并绘制数据。我可以只使用多个数据框并始终将标签名称传递给我的
do_something(),它会绘制数据。 -
这听起来最简单:)
标签: python python-3.x pandas multi-index