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
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