我正在尝试使用该loc方法获取 pandas 数据框的视图,但是当我修改原始 DataFrame 时它没有按预期工作。
我想使用该loc方法提取 DataFrame 的一行/切片,以便在对 DataFrame 进行修改时,切片反映更改。
让我们看一下这个例子:
import pandas as pd
import numpy as np
df = pd.DataFrame({'ID':np.arange(0,5,2), 'a':np.arange(3), 'b':np.arange(3)}).set_index('ID')
df
a b
ID
0 0 0
2 1 1
4 2 2
现在我使用 loc 创建一个切片:
slice1 = df.loc[[2],]
slice1
a b
ID
2 1 1
然后我修改原来的DataFrame:
df.loc[2, 'b'] = 9
df
a b
ID
0 0 0
2 1 9
4 2 2
但不幸的是,我们的切片并没有像我期望的那样反映这种修改:
slice1
a b
ID
2 1 1
我的期望:
a b
ID
2 1 9
我发现使用 和 的组合进行了丑陋的修复iloc,loc但我希望有更好的方法来获得我期望的结果。
谢谢您的帮助。
阿晨1998
狐的传说
繁华开满天机
随时随地看视频慕课网APP
相关分类