[英]pandas operations on part of multiindex dataframe
Any help to solve the following problem would be appreciated.任何帮助解决以下问题将不胜感激。
I have the following df1:我有以下df1:
2020-12-13
user_id currency
4 1WO 1
ADH 23
ALX 5
12223 AMLT 7
ANCT 9
ARE 1
df2: df2:
created_at 2020-12-13
currency
1WO 1
ALX 1
I do the following code:我执行以下代码:
df1.loc[4] = df1.loc[4].sub(df2, axis=1, level='currency', fill_value=0)
output: output:
2020-12-13
user_id currency
4 1WO nan
ADH nan
ALX nan
12223 AMLT 7
ANCT 9
ARE 1
output desired output 需要
2020-12-13
user_id currency
4 1WO 0
ADH 23
ALX 4
12223 AMLT 7
ANCT 9
ARE 1
You can use double []
for DataFrame
with MultiIndex
:您可以将 double
[]
用于DataFrame
和MultiIndex
:
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
Use sub
on the entire df1
instead of just a slice from the MultiIndex:在整个
df1
上使用sub
而不仅仅是 MultiIndex 中的一个切片:
df1.sub(df2, level=1, fill_value=0)
2020-12-13
user_id currency
4.0 1WO 0.0
ADH 23.0
ALX 4.0
12223.0 AMLT 7.0
ANCT 9.0
ARE 1.0
Note: I used @MaxU's great read_clipboard_mi()
to import OP's MultiIndex data frames by copy/paste.注意:我使用@MaxU 的强大
read_clipboard_mi()
通过复制/粘贴来导入 OP 的 MultiIndex 数据帧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.