【发布时间】:2020-03-01 03:40:13
【问题描述】:
我想找到与一列对应的值,以使另一列中的值不大于 3。
例如,在下面的数据框中
df = pd.DataFrame({'a':[1,2,3,1,2,3,1,2,3], 'b':[4,5,6,4,5,6,4,5,6], 'c':[4,3,5,4,3,5,4,3,3]})
我想要 'a' 列的值,其中所有 'c' 的值都大于 3。
我认为 groupby 是正确的方法。我下面的代码更接近它。
df.groupby('a')['c'].max()>3
a
1 True
2 False
3 True
4 False
Name: c, dtype: bool
上面的代码给了我一个布尔框架。我怎样才能得到 'a' 的值,使其为真。 我希望我的输出是 [1,3]
是否有更好、更有效的方法可以在非常大的数据框(超过 3000 万行)上获取此信息。
【问题讨论】:
-
你不想要
df.a[df.c>3],是吗? -
这句话 我想要列 'a' 的值 all 'c' 的值大于 3。不符合 我希望我的输出是 [1,3]
-
希望你能看到我的回答,我会尽快删除它,因为投票失败
-
问题不清楚。你声明了一个显然不是你想要的输出。
-
其他人已经提出了一些好的观点。请澄清您的问题,而不是忽略所有 cmets 并只专注于获得解决方案。