尝试使用系列中的值更新数据框的一部分。
np.random.seed(1)
df = pd.DataFrame(np.random.randint(1,100,(5,5)),columns =list('ABCDE'))
print df
A B C D E
0 38 13 73 10 76
1 6 80 65 17 2
2 77 72 7 26 51
3 21 19 85 12 29
4 30 15 51 69 88
有一系列:
ser = pd.Series(index =list('CBADE'),data = range(-5,0))
C -5
B -4
A -3
D -2
E -1
dtype: int64
让我们进行更新
criteria = df['A'] < 25
criteria:
0 False
1 True
2 False
3 True
4 False
尝试:
df[criteria] = ser
df.loc[criteria,:] = ser
etc.
期望的输出:
A B C D E
0 38 13 73 10 76
1 -3 -4 -5 -2 -1
2 77 72 7 26 51
3 -3 -4 -5 -2 -1
4 30 15 51 69 88
我希望使用布尔条件和广播来尊重列索引和忽略行索引。