我有一個名爲房屋的熊貓數據框。一列是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)
我該怎麼辦呢?
編輯: 我有解決方案,感謝您的幫助:
a = list(df.drop_duplicates(subset=["houseID"]).iloc[:2]['houseID'])
df[df['houseID'].isin(a)]
您的期望結果與您的問題描述不符,例如爲什麼2除外,因爲它也有2個與3相同的銷售?此外,你是否在'df.groupby('houseID')後。filter(lambda x:len(x)<= 2)'? – EdChum
@EdChum我想要1000個不同的houseID的所有行。總而言之,在我的表中,我需要1000個不同的houseID,並且我希望在這1000個不同的原始數據框中包含所有行。houseID – zorro