pandas の DataFrame で「does-not-contain」を検索する 質問する
調べてみたのですが、データフレームをフィルタリングする方法がわかりません。 df["col"].str.contains(word) しかし、私はその逆の方法があるかどうか疑問に思っています。つまり、そのセットの補数でデータフレームをフィルタリングする方法です。例えば、 !(df["col"].str.contains(word)) これをメソッドを通じて実行できますかDataFrame?
調べてみたのですが、データフレームをフィルタリングする方法がわかりません。 df["col"].str.contains(word) しかし、私はその逆の方法があるかどうか疑問に思っています。つまり、そのセットの補数でデータフレームをフィルタリングする方法です。例えば、 !(df["col"].str.contains(word)) これをメソッドを通じて実行できますかDataFrame?
pipまたはを使用して何かをインストールしようとするとpip3、次のメッセージが表示されます。 $ sudo pip3 install python3-tk
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in
Python ドキュメントのほとんどのドキュメントを読みました__getitem__()が、まだ意味を理解できません。 したがって、私が理解できるのは、__getitem__()のような呼び出しを実装するために が使用されるということだけですself[key]。しかし、それは何の用途があるのでしょうか? 次のように定義された Python クラスがあるとします。 class Person: def __init__(self,name,age): self.name = name self.age = age def __getitem__(self,key): print ("Inside `__getitem__` method!") return getattr(self,key) p = Person("Subhayan",32) print (p["age"]) これは期待どおりの結果を返します。しかし、__getitem__()そもそもなぜ使用するのでしょうか? Python が__getitem__()内部的に呼び出すとも聞きました。しかし、なぜそうするのでしょうか? 誰かこれについてもっと詳しく説明してもらえませんか?
私たちはモックしばらくの間、Python を使用します。 さて、関数をモックしたい状況があります def foo(self, my_param): #do something here, assign something to my_result return my_result 通常、これをモックする方法は次のようになります(fooがオブジェクトの一部であると仮定) self.foo = MagicMock(return_value="mocked!") foo()を数回呼び出しても、 self.foo = MagicMock(side_effect=["mocked once", "mocked twice!"]) 今、入力パラメータが特定の値を持つときに固定値を返したいという状況に直面しています。つまり、「my_param」が「something」に等しい場合は、「my_cool_mock」を返したいのです。 これは入手可能なようですPython の mockito when(dummy).foo("something").thenReturn("my_cool_mock") Mock で同じことを実現する方法を探していましたが、成功しませんでした。 何か案は?
グループ化したい列に多くの欠損値がある DataFrame があります。 import pandas as pd import numpy as np df = pd.DataFrame({'a': ['1', '2', '3'], 'b': ['4', np.NaN, '6']}) In [4]: df.groupby('b').groups Out[4]: {'4': [0], '6': [2]} デフォルトでは、pandas groupbyグループ化された列に NaN が含まれる行が削除されます。 NaN 値をグループとして含めるにはどうすればよいですか?
ユーザーから 2 つの文字列を読み取るコードがあります。 name1 = input("Enter name 1: ")
name2 = input("Enter name 2: ")
後で、これらの文字列を印刷用に長い文字列にフォーマットします。 if len(name1) > len(name2):
print ("'{0}' is longer than '{1}'"% name1, name2)
しかし、次のようなエラー メッセージが表示されます。 Traceback (most recent call last):
File "program.py", line 13, in
次のコードがありますが、次のエラーで失敗します。 ランタイムエラー: 最大再帰深度を超えました 私はこれを書き直して、末尾呼び出し最適化 (TCO) を可能にすることを試みました。TCO が行われていれば、このコードは成功しただろうと思います。 def trisum(n, csum): if n == 0: return csum else: return trisum(n - 1, csum + n) print(trisum(1000, 0)) Python はいかなる種類の TCO も行わないと結論付けるべきでしょうか、それとも別の方法で定義する必要があるだけでしょうか?
Pythonで独自のクラスを作成する場合、演算子を使用できるようにするにはどのような関数を定義すればよいでしょうinか。例: class MyClass(object): ... m = MyClass() if 54 in m: ... 参照__contains__ は何をするのか、__contains__ 関数を呼び出すには何が必要か何が起こっているのかという対応する質問については__contains__、
オペレーティング システム (スクリプトが実行されるコンピューター上) を確認したい。 Linux で使用できることはわかっていますos.system('uname -o')が、コンソールにメッセージが表示され、変数に書き込みたいのです。 スクリプトが Mac、Windows、Linux のどれであるかを判別できれば問題ありません。どうすれば確認できますか?
Pythonでは、混合型の数値の演算では、狭い型は他の人のそれまで広がった、例えばint+ float→ float: In [57]: 3 + 0.1 Out[57]: 3.1 しかし についてはdatetime.date、datetime.date+ datetime.timedelta→ datetime.date、ない datetime.datetime: In [58]: datetime.date(2013, 1, 1) + datetime.timedelta(seconds=42) Out[58]: datetime.date(2013, 1, 1) なぜ拡大推論は数値には適用され、date/ datetime/には適用されないのでしょうかtimedelta? (背景: 1 つのフィールドが年、1 つのフィールドが年間通算日、1 つのフィールドが午前 0 時からのミリ秒であるファイル形式の読み取りルーチンを作成しています。もちろん、単純で明示的なソリューションは ですが、とdatetime.datetime(2013, 1, 1, 0, 0, 0) + datetime.timedelta(seconds=42)書き直す必要があるという理由も同様に考えられます。)3 + 0.13.0 + 0.1
Python 辞書があります: {u'2012-07-01': 391, u'2012-07-02': 392, u'2012-07-03': 392, u'2012-07-04': 392, u'2012-07-05': 392, u'2012-07-06': 392} 日付とそれに対応する値を 2 つの別々の列として持つことで、これを pandas データフレームに変換したいと思います。予想される結果は次のようになります。 Date DateValue 0 2012-07-01 391 1 2012-07-02 392 2 2012-07-03 392 . 2012-07-04 392 . ... ... これを直接行う方法はありますか?