python - 如何连接多索引列数据框

标签 python pandas dataframe merge multi-index

我想制作一个有点复杂的多索引列 pandas 数据框串联。此连接由两个或多个数据帧组成,格式如下:

indicator     eps2p                         ... logreturn                      
stock         TIET11     ALSC3     ALPA4    ...   TIET11  ALSC3 ALPA4    

date
2000-01-31       NaN       NaN       NaN    ...     NaN   NaN   NaN  
2000-02-01       100       NaN       NaN    ...     NaN   NaN   NaN  
2000-02-02       101       NaN       NaN    ...     NaN   NaN   NaN  
2000-02-03       104       NaN       NaN    ...     NaN   NaN   NaN 
2000-02-04       NaN       NaN       NaN    ...     NaN   NaN   NaN 

现在,假设我还有两个数据帧,就像上面的数据帧一样,但我有 ev2ebitdaev2ebitda ,而不是 eps2plogreturn indicator 列级别中的 logreturnev2ebitlogreturn。另外,想象一下并非所有数据帧的每个指标下都具有完全相同的 stock 列。最后,还要考虑到同一 indicator 下具有相同 stock 的两个数据帧不一定具有完全相同的索引,即,我可以有两个具有列 的数据帧logreturn/TIET11,但带有补充数据:

DATAFRAME #1                   
              logreturn     
              TIET11        
date                        
2000-01-31    100       
2000-02-01    NaN       
2000-02-02    102       
DATAFRAME #2                   
              logreturn     
              TIET11        
date                        
2000-01-31    100       
2000-02-01    101       
2000-02-02    NaN       

考虑到这一点,如何将这些数据帧连接到一个具有所有唯一指标列(eps2pev2ebitev2ebitda code>)和常见的(logreturn)的方式,我没有重复的数据或从任何连接的数据帧丢失数据?

最佳答案

您可以使用update为此:

In [11]: df1.update(df2)

In [12]: df1
Out[12]:
           logreturn
              TIET11
date
2000-01-31     100.0
2000-02-01     101.0
2000-02-02     102.0

由于 df1 中缺少列,您可以首先使用并集重新索引:

res = df1.reindex(columns=df3.columns | df4.columns)
res.update(df2)

注意:您可能还需要重新索引索引。

关于python - 如何连接多索引列数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56332748/

相关文章:

python - 检查包含字符串和整数的 pandas 系列中的值时出现令人困惑的行为

python - 木星 SSL : WRONG_VERSION_NUMBER

python - 从 Groupby 创建新的 Pandas 列并划分其他列

Python Pillow 未在 OSX 下安装

python - 齐柏林飞艇 : how to read a DataFrame with sql

python - 在python中将json转换为dataframe

python-3.x - 具有 numpy ndarray 和 pandas dataframe 的 mypy 重载函数(签名参数类型相同或更广泛)

python - 将列表添加到 Pandas 中的空数据框

python - Pandas/Python - 数据帧和字典之间的多重条件匹配

python - 在 Pandas 数据框上一起应用过滤器并替换同一列