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]

我想我需要一个 for 循环和 if 语句。但是我没能做到运行ning,有人有什么想法吗?

不清楚你到底在问什么,但假设你想在 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