パンダでは、を使用してグループ化を行うことができますdf.groupby('product_name').size()
。しかし、「product_name」が一意である行、つまりgroupby.sizeが1に等しいレコードのみに関心がある場合、そのような行のみを表示するようにdfをフィルタリングするにはどうすればよいですか?つまり、データベースで属性が発生する回数に基づいて、パンダを使用してデータベースでフィルタリングを実行できますか?(SQLでそれを行うことができます。)
で動作するようにしましたrecords.groupby('product_name').filter(lambda x: len(x['url']) == 1)
。単に使用するだけでlen(x)
は機能しないことに注意してください。3つ以上の列を持つデータフレーム(おそらく実際のデータフレームのほとんど)では、xの列を指定する必要があります。グループ化する列を除く任意の列です。また、データフレームのインデックスが一意ではなかったため、このコードは最初は機能しませんでした。これがフィルタリングの機能に干渉する理由はわかりませんが、干渉しました。データフレームのインデックスを再作成した後、ようやく機能するようになりました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加