根据指定的值列表

时间:2016-04-06 15:29:07

标签: python pandas

我想知道是否有办法根据值列表选择行。也就是说,根据列表中的值从数据框创建子集。

为了进一步解释,我举了一个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

然后将每行追加/连接到新数据框以创建我想要的内容。有没有更好的方法根据列表中的值对数据帧进行子集化?

1 个答案:

答案 0 :(得分:0)

使用isin方法:

 df_name = df_a[(df_a['first_name'].isin(fn)