Select 仅来自 pandas 数据框的一些行基于条件

Select only a number of rows from a pandas Dataframe based on a condition

我想从名为 club

的列中的每个不同值中采样 n 行

columns = ['long_name','age','dob','height_cm','weight_kg','club']
teams = ['Real Madrid','FC Barcelona','Chelsea','CA Osasuna','Paris Saint-Germain','FC Bayern München','Atlético Madrid','Manchester City','Liverpool','Hull City']
playersDataDB = playersData.loc[playersData['club'].isin(teams)][columns]
playersDataDB.head()

在上面的代码中,我根据属于所选团队的列选择了我想要的列。

此代码的输出是一个 299 行 × 6 列的 Dataframe,这意味着我正在对球队中的所有球员进行抽样,但我只想从每个俱乐部中获得 16 个球员。

您可以这样使用 isin

playersDataDB = playersData[playersData['club'].isin(teams)]
playersDataDB.head()

不确定您的数据框是什么样子,但您可以对团队进行分组,然后使用 head(16) 仅获取其中的前 16 个。

df.groupby('club').head(16)