Python 如何在数据帧上选择与重复id匹配的特定字符串的值?
我有这个数据框:Python 如何在数据帧上选择与重复id匹配的特定字符串的值?,python,pandas,dataframe,Python,Pandas,Dataframe,我有这个数据框: user_id event 1 registration 1 visit 1 purchase 2 registration 2 external 我想从至少有一个外部类型事件的每个用户id中选择所有值,以便将它们存储在另一个数据帧中。因此,对于本例,我希望有一个包含下一个信息的数据帧: user_id event 2 registration 2 external 我该
user_id event
1 registration
1 visit
1 purchase
2 registration
2 external
我想从至少有一个外部类型事件的每个用户id中选择所有值,以便将它们存储在另一个数据帧中。因此,对于本例,我希望有一个包含下一个信息的数据帧:
user_id event
2 registration
2 external
我该怎么做呢?您可以计算范围内的用户ID。然后应用布尔掩码:
# calculate unique in-scope IDs
ids = df.loc[df['event'] == 'external', 'user_id'].unique()
# mask dataframe with Boolean series
res = df[df['user_id'].isin(ids)]
print(res)
user_id event
3 2 registration
4 2 external
您可以计算范围内的用户ID。然后应用布尔掩码:
# calculate unique in-scope IDs
ids = df.loc[df['event'] == 'external', 'user_id'].unique()
# mask dataframe with Boolean series
res = df[df['user_id'].isin(ids)]
print(res)
user_id event
3 2 registration
4 2 external
你需要
#find the user ids wchich has `external`
user=df[df['event'].isin(['external'])]['user_id']
#df, which has users
df[df['user_id'].isin(user)]
你需要
#find the user ids wchich has `external`
user=df[df['event'].isin(['external'])]['user_id']
#df, which has users
df[df['user_id'].isin(user)]