我想知道是否有办法根据值列表选择行。也就是说,根据列表中的值从数据框创建子集。
为了进一步解释,我举了一个Chris Albon数据帧的例子。假设我有以下数据帧:
raw_data = {
'subject_id': ['1', '2', '3', '4', '5'],
'first_name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
'last_name': ['Anderson', 'Ackerman', 'Ali', 'Aoni', 'Atiches']}
df_a = pd.DataFrame(raw_data, columns = ['subject_id', 'first_name', 'last_name'])
df_a
我只想根据' first_name'选择行。从下面的列表中:
fnames = ['Alex', 'Alice', 'Ayoung']
我一直在做的是使用条件在fnames上运行循环:
for fn in fnames:
df_name = df_a[(df_a['first_name'] == fn
然后将每行追加/连接到新数据框以创建我想要的内容。有没有更好的方法根据列表中的值对数据帧进行子集化?
答案 0 :(得分:0)
使用isin
方法:
df_name = df_a[(df_a['first_name'].isin(fn)