我正试图从下面的数据框中提取具有匹配Sample\u ID的行:

df1 = pd.DataFrame([[1, 1.0, 2.3,0.2,0.53], [2, 3.35, 2.0,0.2,0.65], [2,3.4,
               2.0,0.25,0.55], [3,3.4,2.0,0.25,0.55]],
               columns=["Sample_ID", "NaX", "NaU","OC","EC"])\
               .set_index('Sample_ID')

在上面的数据框df1中,我只想得到Sample\u ID为“2”的行有没有一种方法可以在不指定匹配值(键)的情况下执行此操作?
我要找的结果是:
       NaX NaU OC  EC
Sample_ID
   2   3.35    2.0 0.20    0.65
   2   3.40    2.0 0.25    0.55

谢谢你看这个!

最佳答案

使用.loc

df.loc[2]

输出:
            NaX  NaU    OC    EC
Sample_ID
2          3.35  2.0  0.20  0.65
2          3.40  2.0  0.25  0.55

要回答注释问题,可以创建字典并存储以下组:
list_of_df = {}
for n,g in df1.groupby(level=0):
    list_of_df[n] = g

10-05 21:15
查看更多