Pandas:使用一系列字符串从数据帧中选择行



我有一个系列中的姓氏列表,s:

print(s)
Order
1       Surname01
2       Surname02
3       Surname03
4       Surname04
5       Surname05
...    
496     Surname06
497     Surname07
498     Surname08
499     Surname09
500     Surname10

我在数据框中列出了姓名、地址、电话号码等,df:

Unnamed: 0  Unnamed: 0.1  ...           Phone      Unnamed: 7
Last Name                            ...                                
Surname01           0           NaN  ...             NaN             NaN
Surname02           1           NaN  ...             NaN             NaN
Surname11           2           NaN  ...             NaN             NaN
Surname12           3           NaN  ...  (123) 456-7890  (123) 456-7890
Surname05           4           NaN  ...  (123) 456-7890  (123) 456-7890
...               ...           ...  ...             ...             ...
Surname13          94           NaN  ...  (123) 456-7890  (123) 456-7890
Surname14          95           NaN  ...  (123) 456-7890  (123) 456-7890
Surname15          96           NaN  ...             NaN             NaN
Surname16          97           NaN  ...             NaN             NaN
Surname17          98           NaN  ...             NaN             NaN

我想从df创建一个只包含s中姓氏的新表。我读了很多页,但都想不通。这就是我现在的位置:

df = df.loc[s]

但我得到KeyError:"姓氏">

尝试df.loc[df.index.isin(s), :]

示例

s = pd.Series(['a', 'b', 'c', 'd'])
df = pd.DataFrame(index=['a', 'f', 'd'], 
data={'col1': [10, 11, 12], 'col2': [1, 2, 3]})
df.loc[df.index.isin(s), :]
col1  col2
a    10     1
d    12     3

最新更新