【发布时间】:2021-03-03 13:29:55
【问题描述】:
我有一个看起来像这样的数据框
df(包含大约 200 行)
Name,Country,Population
Chicago,USA,2694240
Luanda,Angola,8329798
Seattle,USA,783137
Meishan,China,723267
Colombo,Sri Lanka,612535
Taishan,China,524937
Faisalabad,Pakistan,3462295
Houston,USA,2340890
Rajshahi,Bangladesh,907732
Shaoyang,China,713559
Zamboanga City,Philippines,917477
Meerut,India,1696440
Mangalore,India,713357
Beira,Mozambique,569911
Samsun,Turkey,642592
Anqiu,China,682299
Jerusalem,Israel,931756
Zahedan,Iran,609873
Algiers,Algeria,2767661
Johannesburg,South Africa,5782747
Celaya,Mexico,680971
Kitwe,Zambia,685908
Da Nang,Vietnam,1125316
我想将按国家/地区分组的行放入另一个名为 sampled_df 的数据框中。对于随机选择,我使用下面的代码
if condition = 'True':
rows = np.random.choice(df.index.values,len(df))
sampled_df = df.loc[rows].groupby('Country').head(5)
print (sampled_df)
输出
Name Country Population
Chicago USA 2694240
Seattle USA 783137
Houston USA 2340890
Louisville USA 624890
Indianapolis USA 875929
使用上面的方法,我得到每个国家/地区的 5 个城市名称(最多)或 0 个(最坏的情况:“如果我错了,请纠正我”)。我想要的是选择应该是最多 5 个元素和至少 3 个元素。如何添加此过滤器?
【问题讨论】:
标签: python pandas numpy dataframe