簡體   English   中英

如何計算pandas中大於特定值的行值?

[英]How to calculate amounts that row values greater than a specific value in pandas?

如何計算pandas中大於特定值的行值? 例如,我有一個 Pandas DataFrame dff 我想計算大於 0 的行值。

dff = pd.DataFrame(np.random.randn(9,3),columns=['a','b','c'])
dff

    a           b           c
0   -0.047753   -1.172751   0.428752
1   -0.763297   -0.539290   1.004502
2   -0.845018   1.780180    1.354705
3   -0.044451   0.271344    0.166762
4   -0.230092   -0.684156   -0.448916
5   -0.137938   1.403581    0.570804
6   -0.259851   0.589898    0.099670
7   0.642413    -0.762344   -0.167562
8   1.940560    -1.276856   0.361775

我正在使用一種低效的方式。 如何更有效率?

dff['count'] = 0
for m in range(len(dff)):        
    og = 0
    for i in dff.columns:
        if dff[i][m] > 0:
            og += 1
    dff['count'][m] = og
dff

    a           b           c           count
0   -0.047753   -1.172751   0.428752    1
1   -0.763297   -0.539290   1.004502    1
2   -0.845018   1.780180    1.354705    2
3   -0.044451   0.271344    0.166762    2
4   -0.230092   -0.684156   -0.448916   0
5   -0.137938   1.403581    0.570804    2
6   -0.259851   0.589898    0.099670    2
7   0.642413    -0.762344   -0.167562   1
8   1.940560    -1.276856   0.361775    2

您可以創建 DataFrame 的布爾掩碼,只要值大於閾值(在本例中為0 ),即為True ,然后沿第一個軸使用sum

dff.gt(0).sum(1)

0    1
1    1
2    2
3    2
4    0
5    2
6    2
7    1
8    2
dtype: int64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM