Py学习  »  Python

计算给定区域(特定行*列)中大于0的值-Python、Excel、Pandas

Avishai D • 3 年前 • 1150 次点击  

根据以下数据:

参与者 条件 RT
1. 1. 0.10
1. 1.
1. 2. 0.48
2. 1. 1.2
2. 2.
2. 2. 0.58

根据以下术语计算大于0的值的适当代码是什么:

参与者==1,条件==1

答案应该是: N=1 注意,不考虑空插槽

期待您的回复 怀着感激之情, 阿维谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130259
 
1150 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Corralien
Reply   •   1 楼
Corralien    3 年前

使用布尔掩码并求和:

N = sum((df['Participant'] == 1) & (df['Condition'] == 1) & (df['RT'].notna()))
print(N)

# Output
1

细节:

m1 = df['Participant'] == 1
m2 = df['Condition'] == 1
m3 = df['RT'].notna()
df[['m1', 'm2', 'm3']] = pd.concat([m1, m2, m3], axis=1)
print(df)

# Output
   Participant  Condition    RT     m1     m2     m3
0            1          1  0.10   True   True   True  # All True, N = 1
1            1          1   NaN   True   True  False
2            1          2  0.48   True  False   True
3            2          1  1.20  False   True   True
4            2          2   NaN  False  False  False
5            2          2  0.58  False  False   True