dataframe.le は列ごとに動作しないようです。
df = DataFrame(randn(8,12))
series=Series(rand(8))
df.le(series)
df
その中の各列がと比較されることを期待しますseries
(したがって、合計 12 列が と比較されるseries
ため、12 列 * 8 行の比較が含まれます)。ただし、その中の各要素がdf
すべての要素と比較されるようにseries
見えるため、これには 12(列)*8(行)*8(一連の要素)の比較が含まれます。列ごとの比較を行うにはどうすればよいですか?
2番目の質問は、列ごとの比較が完了したら、各行に「true」がいくつあるかをカウントできるようにしたいということです。現在、astype(int32)
bool を int に変換してから do を実行していますがsum
、これは合理的に聞こえますか?
最初の質問の例を挙げて、私の意図を示しましょう (show 8*12 は難しいため、より単純な例を使用します)。
>>>from pandas import *
>>>from numpy.random import *
>>>df = DataFrame(randn(2,5))
>>>t = DataFrame(randn(2,1))
>>>df
0 1 2 3 4
0 -0.090283 1.656517 -0.183132 0.904454 0.157861
1 1.667520 -1.242351 0.379831 0.672118 -0.290858
>>>t
0
0 1.291535
1 0.151702
>>>df.le(t)
0 1 2 3 4
0 True False False False False
1 False False False False False
私が期待するのは、dfの列1は次のとおりです。
1
False
True
1.656517 < 1.291535
isFalse
と-1.242351 < 0.151702
isであるためTrue
、これは列ごとの比較です。ただし、印刷はFalse False
.