【问题标题】:Subsetting column from pandas dataframe with indexing带有索引的熊猫数据框的子集列
【发布时间】:2016-08-25 17:22:31
【问题描述】:

我在 pandas 数据框中有一个大型数据集,我想对其进行子集化以便进一步操作。

例如,我有一个如下所示的 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

有没有办法做到这一点,而无需使用一些复杂的循环或简单地手动删除不需要的列及其值?

谢谢!!!

【问题讨论】:

    标签: python pandas subset


    【解决方案1】:
    df2 = df.loc[df['Group'] == 'B', ['Sample', 'Group', 'ATP']]
    

    【讨论】:

    • 啊,这太棒了!我假设这段代码只是在逗号后传递所需列的索引。我知道会有一个简单的解决方案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 2019-06-24
    • 2020-01-13
    • 1970-01-01
    • 2021-08-28
    • 2015-01-26
    • 2022-07-10
    相关资源
    最近更新 更多