指定索引上的两个数据框

德勒玛

我对此有些迷茫。任何帮助,将不胜感激。

第一个数据框:

            2020-08-03    2020-08-04
currency                            
1WO       8.255000e+00  8.137000e+00
ADH       6.349000e-02  6.388000e-02
...                ...           ...

XRP       3.292000e+01  3.184000e+01

[130 rows x 2 columns]

第二个数据框:

                          2020-08-03    2020-08-04
app_id      currency                            
45334         1WO       2.614163e+05  2.614163e+05
              ADH       8.403654e+05  8.403654e+05
...                              ...           ...
23423         FRT       1.078614e+03  1.057127e+03
              WES       7.844820e+06  7.936699e+06

[148 rows x 2 columns]

编码:

jpy_bal = first_df.multiply(second_df, axis= 0, level='currency').fillna(0).astype(float)

错误:

   "Index._join_level on non-unique index " "is not implemented"
NotImplementedError: Index._join_level on non-unique index is not implemented
耶斯列尔

这是有重复的问题first_df.index

#simulate error
print (first_df)
          2020-08-03  2020-08-04
currency                        
1WO          8.25500     8.13700
1WO          0.06349     0.06388
XRP         32.92000    31.84000

jpy_bal = first_df.multiply(second_df, axis= 0, level='currency').fillna(0).astype(float)
print (jpy_bal)
NotImplementedError: Index._join_level on non-unique index is not implemented

可能的解决方案是按索引summean按索引汇总的

first_df = first_df.groupby(level=0).sum()
print (first_df)
          2020-08-03  2020-08-04
currency                        
1WO          8.31849     8.20088
XRP         32.92000    31.84000

jpy_bal = first_df.multiply(second_df, axis= 0, level='currency').fillna(0).astype(float)
print (jpy_bal)
                   2020-08-03    2020-08-04
app_id currency                            
45334  1WO       2.174589e+06  2.143844e+06
       ADH       0.000000e+00  0.000000e+00
23423  FRT       0.000000e+00  0.000000e+00
       WES       0.000000e+00  0.000000e+00

或删除每个索引的重复项:

first_df = first_df[~first_df.index.duplicated()]
print (first_df)
          2020-08-03  2020-08-04
currency                        
1WO            8.255       8.137
XRP           32.920      31.840

jpy_bal = first_df.multiply(second_df, axis= 0, level='currency').fillna(0).astype(float)
print (jpy_bal)
                   2020-08-03    2020-08-04
app_id currency                            
45334  1WO       2.157992e+06  2.127144e+06
       ADH       0.000000e+00  0.000000e+00
23423  FRT       0.000000e+00  0.000000e+00
       WES       0.000000e+00  0.000000e+00

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章