从带有索引的数据帧对列进行子集设置

2024-04-26 21:32:10 发布

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

我有一个大数据集在一个熊猫数据帧,我想子集,以便进一步操纵

例如,我有一个如下所示的df:

Sample  Group   AMP         ADP         ATP
1       A       0.3840396   0.55635504  0.5844648
2       A       0.3971521   0.57851902  -0.24603208
3       A       0.4578926   0.68118957  0.19129746
4       B       0.400222    0.58370811  0.01782915
5       B       0.4110945   0.60208593  -0.6285537
6       B       0.3307011   -0.82615087 -0.25354715
7       C       0.3485679   -0.79597002 -0.17294609
8       C       0.3408411   -0.8090222  0.76138965
9       C       0.3856457   -0.73333568 0.27364299

假设我想从df生成一个新的数据帧df2,它只包含B组中的样本和ATP的相应值。我应该可以从索引单独做到这一点

我想这样做:

df2 = df[(df['Group']=='B') & (df['ATP'])]

我知道df['ATP']显然不是正确的方法。打印df2会产生以下结果:

   Sample Group       AMP       ADP       ATP
   4      B           0.400222  0.583708  0.017829
   5      B           0.411094  0.602086 -0.628554
   6      B           0.330701 -0.826151 -0.253547

理想情况下,df2将如下所示:

   Sample Group    ATP
   4      B        0.017829
   5      B       -0.628554
   6      B       -0.253547

有没有一种方法可以做到这一点,而不必求助于一些复杂的循环或简单地手动删除不需要的列及其值

谢谢


Tags: 数据sample方法dfgroup情况手动子集