Python 对部分多索引数据帧的操作
如果您能帮助解决以下问题,我们将不胜感激 我有以下df1: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
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