Python 对部分多索引数据帧的操作

Python 对部分多索引数据帧的操作,python,pandas,Python,Pandas,如果您能帮助解决以下问题,我们将不胜感激 我有以下df1: 2020-12-13 user_id currency 4 1WO 1 ADH 23 ALX 5 12223 AMLT 7 ANCT 9 ARE 1 df2: 我执行以下代码: df1.loc[4] = df1.loc[4

如果您能帮助解决以下问题,我们将不胜感激

我有以下df1:

                    2020-12-13
user_id currency              
4       1WO       1
        ADH       23
        ALX       5
12223   AMLT      7
        ANCT      9
        ARE       1
df2:

我执行以下代码:

df1.loc[4] = df1.loc[4].sub(df2, axis=1, level='currency', fill_value=0)
输出:

                    2020-12-13
user_id currency              
4       1WO       nan
        ADH       nan
        ALX       nan
12223   AMLT      7
        ANCT      9
        ARE       1
期望输出

                    2020-12-13
user_id currency              
4       1WO       0
        ADH       23
        ALX       4
12223   AMLT      7
        ANCT      9
        ARE       1

在整个
df1
上使用
sub
,而不仅仅是多索引中的一个片段:

df1.sub(df2,级别=1,填充值=0)
2020-12-13
用户id货币
4.0 1WO 0.0
ADH 23.0
alx4.0
12223.0 AMLT 7.0
ANCT 9.0
是1.0

注意:我使用@MaxU's great通过复制/粘贴来导入OP的多索引数据帧。

您可以使用double
[]
数据帧
使用
多索引

print (df1.loc[[4]].sub(df2, axis=1, level='currency', fill_value=0))
                  2020-12-13
user_id currency            
4       1WO              0.0
        ADH             23.0
        ALX              4.0


df1.loc[[4]] = df1.loc[[4]].sub(df2, axis=1, level='currency', fill_value=0)
print (df1)
                  2020-12-13
user_id currency            
4       1WO              0.0
        ADH             23.0
        ALX              4.0
12223   AMLT             7.0
        ANCT             9.0
        ARE              1.0

谢谢你的回答,但是我忘了提到在不同的用户id中可能有相同的货币。所以我需要指定用户id。
print (df1.loc[[4]].sub(df2, axis=1, level='currency', fill_value=0))
                  2020-12-13
user_id currency            
4       1WO              0.0
        ADH             23.0
        ALX              4.0


df1.loc[[4]] = df1.loc[[4]].sub(df2, axis=1, level='currency', fill_value=0)
print (df1)
                  2020-12-13
user_id currency            
4       1WO              0.0
        ADH             23.0
        ALX              4.0
12223   AMLT             7.0
        ANCT             9.0
        ARE              1.0