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)
我想从名为 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)