当前位置: 首页 > 知识库问答 >
问题:

在追加模式下使用多索引连接df

孟海
2023-03-14

好的,这是我的问题,我想使用multindexing,这样我就有了一个3-D的DF。我可以用

df = pd.concat([df1, df2], keys=('df1','df2'))

但是如何在DF上添加新的df3呢?本质上,我想在追加模式下的循环中添加一个新的df?我有几千个DF,在我连接它们之前存储所有的dfs不会很有效。有办法做到吗?

更具体地,让我们假设我有以下DF

df1 = pd.DataFrame(columns=['a', 'b', 'c'])
df2 = pd.DataFrame(columns=['a', 'b', 'c'])
df1.loc['index_1','b'] = 1
df1.loc['index_2','a'] = 2

df2.loc['index_7','a'] = 5
df3 = pd.DataFrame(columns=rating_matrix.columns)
df3.loc['index_9','c'] = 1

df = pd.concat([df1, df2], keys=('df1','df2'))


    a   b   c
df1     index_1     NaN     1   NaN
        index_2     2   NaN     NaN
df2     index_7     5   NaN     NaN

我能以类似的方式添加DF3吗?

共有1个答案

傅高逸
2023-03-14

因此,经过一段时间的搜索,我发现最好的方法是首先创建最终的df,重置它的索引,并设置最终的多索引。应该是这样的:

# create df's
df1 = pd.DataFrame(columns=['a', 'b', 'c'])
df2 = pd.DataFrame(columns=['a', 'b', 'c'])
df3 = pd.DataFrame(columns=['a', 'b', 'c'])

df1.loc['index_1','b'] = 1
df1.loc['index_2','a'] = 2
df2.loc['index_7','a'] = 5
df3.loc['index_9','c'] = 1

# add index in the form of a column
df1['df'] = 'df1' 
df2['df'] = 'df2'
df3['df'] = 'df3'

# reset index and set multiindex
df = pd.concat([df1, df2, df3], sort=True)
df.reset_index(inplace=True)
df.set_index(['df', 'index'], inplace=True)
df



                         a       b       c
df  index           
df1         index_1     NaN      1      NaN
            index_2      2      NaN     NaN
df2         index_7      5      NaN     NaN
df3         index_9     NaN     NaN      1
 类似资料:
  • 我试着在本地写文件,这是工作良好的....可能是配置中的问题。 这些是pom.xml中的依赖项

  • 要使用Kibana,您需要通过配置一个或多个索引模式来告诉它您想探索的 Elasticsearch 索引。您也可以: 通过对您数据的实时计算创建脚本化字段,您可以浏览和可视化脚本化字段,但是不能搜索它们。 设置高级选项,例如要在表格中显示的行数以及要显示多少个最受关注的字段。修改高级选项时需要格外注意,避免设置彼此不兼容的值。 为生产环境配置 Kibana。 创建一个索引模式连接 Elastics

  • 在我的应用程序中,我需要每15分钟从一个网站下载数据。我的问题是,当手机处于打瞌睡模式时,由于节省能源,连接会消失。我尝试了一个由Alam管理器每15分钟激活一次的WakefulBroadcastReceiver,但由于手机处于打瞌睡模式,连接几乎总是消失。我读过jobscheduler,但不知道它是否对我的问题有用,以及可能如何实现它。有人有一个代码示例,允许我通过每15分钟从打瞌睡模式中唤醒手

  • 我们有制作人将以下内容发送给Kafka: 主题=系统日志,每天 ~25,000 个事件 topic=nginx,每天 ~5,000 个事件 topic=zeek.xxx.log,每天~100,000个事件(总计)。在最后一种情况下,有 20 个不同的 zeek 主题,例如 zeek.conn.log 和 zeek.http.log 实例充当消费者,将数据从kafka发送到elasticsearch

  • 我开始了Django-haystack和弹性搜索的实验。 使用: models.py 我想为上述模型创建一个搜索索引: 是否可以使用多个模型创建搜索索引。或者我必须为多个模型创建多个搜索索引。 注:两种型号完全独立。

  • 我试图在包含重复索引的两个数据帧上使用pandas concat。 当我尝试连接我的两个数据帧时,我得到以下错误 传递值的形状是(12, 180054),指数暗示(12,10000)。 为了更好地理解这个问题,我创建了两个数据帧: 看起来像: 和 看起来像: 这与我的原始数据帧也有类似的方面。索引是重复的,并且是日期时间格式。 但是,concat(axis=1)可以很好地创建以下数据帧 (这正是我