假设我有简单的数据框,例如:
data = {'Col_A' : [0.75, 0.25, 0.25, 0.75, 0.75, 0.25], 'Col_B' : [2, 2.5, 1, 1.5, 3, 3.5]}
df = pd.DataFrame(data)
这导致:
Col_A Col_B
0 0.75 2.0
1 0.25 2.5
2 0.25 1.0
3 0.75 1.5
4 0.75 3.0
5 0.25 3.5
我想要做的是对Col_A
和Col_B
和迭代每一行使用一个条件,如果两者都匹配条件,我想将该行添加到字典中。
所以我们可以说,如果Col_A < 0.5
和Col_B > 2
我想追加一个字典Col_B
,它是适当的值。
在上面的情况下,我希望返回字典,因为{'Col_B : 3.0, 'Col_B' : 2.5}
我知道Col_B
这里重复了,但是我有df
很多列和很多行,我基本上是想了解一些事情发生的频率.
我希望能够使用的代码是这样的:
dict['Col_B'] = np.where((df['Col_A'] < 0.5) and (df['Col_B'] > 1.5), df['Col_B'])
显然,我知道这行不通,但我就是这么想的。任何帮助将是极大的欢呼。
根据 Col_A 和 Col_B 的条件,您想从 Col_B 获取值吗?你可以这样做:
# identify rows with matching conditions
idx = (df.Col_A < 0.5) & (df.Col_B > 2)
# put values from Col_B into your dictionary
dict["Col_B"] = list(df.loc[idx, "Col_B"])
这每次都会覆盖字典中的“Col_B”,但是如果需要,您可以修改它以追加(我不确定您想在这里实现什么,所以我不知道您的应用程序是否需要追加)。
你说
我基本上是想了解一些事情发生的频率
如果只想统计 Col_A < 0.5 和 Col_B > 2 的实例,只需拉取大小
numEvents = df.loc[idx, "Col_B"].size
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句