【发布时间】: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
有没有办法做到这一点,而无需使用一些复杂的循环或简单地手动删除不需要的列及其值?
谢谢!!!
【问题讨论】: