式の結果をデータフレームにブロードキャストしたいのですが、列全体ではなく、フィルター処理されたサブセットだけにブロードキャストしたいと思います。以下の簡略化:
In [6]: df1 = DataFrame({"A":[1, 2, 3, 4], "B":["w", "x", "y", "z"], "C":(numpy.
zeros((4), dtype='S1'))})
In [7]: df1
Out[7]:
A B C
0 1 w
1 2 x
2 3 y
3 4 z
したがって、AとBには既存のデータが含まれ、列Cには結果を入力する準備ができています。だから私は以下のようにコラム全体に放送することができます:
In [9]: df1['C'] = 'H'
In [10]: df1
Out[10]:
A B C
0 1 w H
1 2 x H
2 3 y H
3 4 z H
しかし、フィルタリングされたサブセット(この例では文字「R」)をブロードキャストしようとすると、次のようになります。
In [14]: (df1[df1['A'] > 2])['C']
Out[14]:
2 H
3 H
Name: C
(フィルタリングが機能することを証明するためだけに)
そこで、このサブセットに「R」を割り当ててみます。
In [12]: (df1[df1['A'] > 2])['C'] = "R"
In [13]: df1
Out[13]:
A B C
0 1 w H
1 2 x H
2 3 y H
3 4 z H
しかし、私の値は変更されていません:((興味深いことに、エラーは発生しません!?)誰かがこれを達成する方法を提案できますか?
どうもありがとう、