簡體   English   中英

python for循環與if語句來划分數字

[英]python for loop with if statement to divide numbers

if 語句和 for 循環

我堅持使用以下代碼,如果數字大於 10,我想在其中除以 2 並為所有行運行此列。 我已經嘗試過這段代碼,但它給出了該系列的錯誤是模棱兩可的:

if df[x] > 10:
   df[x]/2
else:
   df[x]

我想我需要一個結合 if 語句的 for 循環。 但是我無法讓它運行,有人有什么想法嗎?

目前尚不清楚你在問什么,但假設你想在 x 處划分元素,如果它> 10,你可以簡單地做

>>> df = [1,2,3,4,5,6]
>>> df = [1,2,30,40,5,6]
>>> if df[2]>10:
...     df[2]/=2
... 
>>> df
[1, 2, 15.0, 40, 5, 6]

注意 /= 而不是 /。

我認為最簡單的方法是使用布爾索引。 例如:

df = pd.DataFrame(           # create dataframe
    20*np.random.rand(6, 4), 
    columns=list("ABCD"))
print(df)                    # print df
df[df>10]/=2                 # divide entries over 10 by 2
print(df)                    # print df

結果:

           A          B          C          D
0   1.245686   1.443671  17.423559  17.617235
1  13.834285  10.482565   2.213459   9.581361
2   0.290626  14.082919   0.224327  11.033058
3   5.113568   5.305690  19.453723   3.260354
4  14.679005   8.761523   2.417432   4.843426
5  15.990754  12.421538   4.872804   5.577625

          A         B         C         D
0  1.245686  1.443671  8.711780  8.808617
1  6.917143  5.241283  2.213459  9.581361
2  0.290626  7.041459  0.224327  5.516529
3  5.113568  5.305690  9.726862  3.260354
4  7.339503  8.761523  2.417432  4.843426
5  7.995377  6.210769  4.872804  5.577625

暫無
暫無

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

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