私は家と呼ばれるパンダのデータフレームを持っています。 1つの列はhouseIDであり、私は1000の異なる家の情報を取得したい。同じhouseIDを持つ行が1行以上あります(行の数が多かれ少なかれ)。そのために私は1000の最初の行を取得することはできません、私はこのような何かが必要です。列データフレームの数を制限する方法を選択できますか? PYTHON
SELECT * FROM houses WHERE COUNT(DISTINCT houseID) <= 1000
削減例(3異なるhouseIDと、元のデータフレームを、私はこの減少した例では2つの異なるhouseIDをしたい):
from collections import OrderedDict
import pandas as pd
housesDict = OrderedDict([ ('houseID', ['1', '3', '1','2','2','1','3','1','1']),
('Cost', [150, 200, 50,100,75,18,10,23,19])])
houses = pd.DataFrame.from_dict(housesDict)
print(houses)
私は2に家屋の異なる数を制限したい場合は、私の予想される出力は次のようになります。
housesDict = OrderedDict([ ('houseID', ['1', '3', '1','1','3','1','1']),
('Cost', [150, 200, 50,18,10,23,19])])
houses = pd.DataFrame.from_dict(sales)
print(houses)
私はそれをどのように行うことができますか?
EDIT: 私は解決策を持っている、助けてくれてありがとう:あなたは異なる値にしたい場合は、数を制限したい場合は
a = list(df.drop_duplicates(subset=["houseID"]).iloc[:2]['houseID'])
df[df['houseID'].isin(a)]
あなたの希望する結果は、問題の説明と一致しません。たとえば、2つの別個の売上が3と同じ場合に2が除外されるのはなぜですか?フィルタ(lambda x:len(x)<= 2) '? – EdChum
@EdChum私は1000のdifferents houseIDのすべての行を必要とします。合計で、私のテーブルには1000個のhouseIDが必要です。これらの1000個の異なるデータセットの元のデータフレームにすべての行を入れたいと思います。 – zorro