如何在Pandas数据框中按名称选择行列表?

2024-05-08 22:53:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用列表从Pandas数据帧中提取行,但无法完成。下面是一个例子

# df
    alleles  chrom  pos strand  assembly#  center  protLSID  assayLSID  
rs#
TP3      A/C      0    3      +        NaN     NaN       NaN        NaN
TP7      A/T      0    7      +        NaN     NaN       NaN        NaN
TP12     T/A      0   12      +        NaN     NaN       NaN        NaN
TP15     C/A      0   15      +        NaN     NaN       NaN        NaN
TP18     C/T      0   18      +        NaN     NaN       NaN        NaN

test = ['TP3','TP12','TP18']

df.select(test)

这就是我试图用列表中的元素来做的,我得到了这个错误TypeError: 'Index' object is not callable。我做错什么了?


Tags: 数据postestpandasdf列表assemblynan
2条回答

您可以按位置选择行:

df.iloc[[0,2,4], :]

您可以使用df.loc[['TP3','TP12','TP18']]

下面是一个小例子:

In [26]: df = pd.DataFrame({"a": [1,2,3], "b": [3,4,5], "c": [5,6,7]})

In [27]: df.index = ["x", "y", "z"]

In [28]: df
Out[28]: 
   a  b  c
x  1  3  5
y  2  4  6
z  3  5  7

[3 rows x 3 columns]

In [29]: df.loc[["x", "y"]]
Out[29]: 
   a  b  c
x  1  3  5
y  2  4  6

[2 rows x 3 columns]

相关问题 更多 >