私はPythonとこのコミュニティにはかなり新しいので、おそらく非常に明白なものに私の深遠な混乱を説明する私の素人な試みを許してください。とにかく...xsでスライスしているときにmultiIndex DataFrameでany()とall()を使用すると、
私は「データ」と呼ばれるデータフレームを持っています。これは、 "日付"と "おなら"からなる2つのレベルのmultiIndexedです。
"integrated_daily_difference"という単一の列があります。あなたが「オナラ」を想定することができ
は型である:「pandas.core.index.Index」とを経て作成されました: farts = data.index.levels[1]
は今、私は、任意で私のデータフレームのスライスビューを取るたいと思います想像することができますオナラのインデックス値:つまりオナラ[1]
ミー:
data.xs(farts[1], level = 1)
コンピュータ:
integrated_daily_difference
date
2015-05-21 00:00:00+00:00 0.000000
2015-05-22 00:00:00+00:00 0.000000
2015-05-26 00:00:00+00:00 -0.024497
2015-05-27 00:00:00+00:00 -0.051144
2015-05-28 00:00:00+00:00 -0.079841
2015-05-29 00:00:00+00:00 -0.106666
2015-06-01 00:00:00+00:00 -0.131245
2015-06-02 00:00:00+00:00 -0.157428
2015-06-03 00:00:00+00:00 -0.184057
2015-06-04 00:00:00+00:00 -0.209755
2015-06-05 00:00:00+00:00 -0.234588
2015-06-08 00:00:00+00:00 -0.262365
2015-06-09 00:00:00+00:00 -0.291890
2015-06-10 00:00:00+00:00 -0.320943
2015-06-11 00:00:00+00:00 -0.352627
2015-06-12 00:00:00+00:00 -0.381425
2015-06-15 00:00:00+00:00 -0.404055
ミー:
data.xs(farts[1], level = 1) < 0
コンピュータ:
integrated_daily_difference
date
2015-05-21 00:00:00+00:00 False
2015-05-22 00:00:00+00:00 False
2015-05-26 00:00:00+00:00 True
2015-05-27 00:00:00+00:00 True
2015-05-28 00:00:00+00:00 True
2015-05-29 00:00:00+00:00 True
2015-06-01 00:00:00+00:00 True
2015-06-02 00:00:00+00:00 True
2015-06-03 00:00:00+00:00 True
2015-06-04 00:00:00+00:00 True
2015-06-05 00:00:00+00:00 True
2015-06-08 00:00:00+00:00 True
2015-06-09 00:00:00+00:00 True
2015-06-10 00:00:00+00:00 True
2015-06-11 00:00:00+00:00 True
2015-06-12 00:00:00+00:00 True
2015-06-15 00:00:00+00:00 True
私は、これは結果が真であるので、値が私のスライスされたデータフレーム内の任意の場所のために存在するかどうかを返すと仮定?
ミー:
data.xs(farts[1], level = 1).any()
コンピュータ:
integrated_daily_difference True
dtype: bool
OKが、これはすべての種類の意味があります。今、奇妙なもののために...
ミー:
data.xs(farts[1], level = 1).any() < 0
コンピュータ:
integrated_daily_difference False
dtype: bool
はぁ......?
ミー:
data.xs(farts[1], level = 1).any(axis = 0) < 0
コンピュータ:
integrated_daily_difference False
dtype: bool
ミー:
data.xs(farts[1], level = 1).any(axis = 1) < 0
コンピュータ:
date
2015-05-21 00:00:00+00:00 False
2015-05-22 00:00:00+00:00 False
2015-05-26 00:00:00+00:00 False
2015-05-27 00:00:00+00:00 False
2015-05-28 00:00:00+00:00 False
2015-05-29 00:00:00+00:00 False
2015-06-01 00:00:00+00:00 False
2015-06-02 00:00:00+00:00 False
2015-06-03 00:00:00+00:00 False
2015-06-04 00:00:00+00:00 False
2015-06-05 00:00:00+00:00 False
2015-06-08 00:00:00+00:00 False
2015-06-09 00:00:00+00:00 False
2015-06-10 00:00:00+00:00 False
2015-06-11 00:00:00+00:00 False
2015-06-12 00:00:00+00:00 False
2015-06-15 00:00:00+00:00 False
ミー:
data.xs(farts[1], level = 1).any(axis = 1) <= 0
がコンピュータ:
date
2015-05-21 00:00:00+00:00 True
2015-05-22 00:00:00+00:00 True
2015-05-26 00:00:00+00:00 False
2015-05-27 00:00:00+00:00 False
2015-05-28 00:00:00+00:00 False
2015-05-29 00:00:00+00:00 False
2015-06-01 00:00:00+00:00 False
2015-06-02 00:00:00+00:00 False
2015-06-03 00:00:00+00:00 False
2015-06-04 00:00:00+00:00 False
2015-06-05 00:00:00+00:00 False
2015-06-08 00:00:00+00:00 False
2015-06-09 00:00:00+00:00 False
2015-06-10 00:00:00+00:00 False
2015-06-11 00:00:00+00:00 False
2015-06-12 00:00:00+00:00 False
2015-06-15 00:00:00+00:00 False
ミー:
data.xs(farts[1], level = 1).any(axis = 0) <= 0
がコンピュータ:
integrated_daily_difference False
dtype: bool
はその後、私のコンピュータは、強迫笑っ開始しました私と私の頭が爆発した...
もっと真剣に、ここで何が起こっているのですか?私の目標は、単一の列のデータフレーム内のすべての値またはすべての値が条件を満たすかどうかをチェックし、TrueまたはFalseのブール値を返すことだけです。私は正しく()を使用しているようではないので、私は助けを求めています。
ご了承ください。前もって感謝します!
これは非常に役に立ちます。ありがとうございました!私は実際に少し深く行って、次のように試しました:mylist = [1,2,3,4,0、-1] 'test 1:'、すべて(mylist)> -1 'test 2:すべて(i> -1、私はmylistで)テスト1は真、テスト2は偽を表示しました。私はこれがTrue(1)とFalse(0)の両方であると仮定します。最初の場合は-1より大きく、ジェネレータで評価された場合はそれは異なって動作します.. –
最初のtry、 'all(mylist) '再び条件はありませんが、リストには0が含まれているので、数値的に0のFalseを返します。なぜなら、"> -1 "でテストするとTrueを返します。 – hashcode55
と2番目のものでは、ブーリアンのリストをテストしています! i> -1は-1に対してFalseを返します。これは全体的なFalseにつながります。try> = -1とすると、Trueを取得します。あなたが念頭に置いておかなければならない基本コンセプトです。 "反復可能な要素のどれかが真であればTrueを返します。"いずれかと「反復可能のすべての要素に該当する場合、Trueを返します」のために - - すべての – hashcode55