我有一个包含 3 列 (A, B, C
) 的数据框。
A
是一个从 0 到 n(等于行索引)的数字,我需要为将使用数据帧读取文件并使用它的设备生成它。
B
是一个值为 100 或低于该值的列。
C
是具有位置值的列,例如 0、0.5、1、1.5 等。
目标是制作第四列 D
,根据行填充 1's
或 2's
。例如,假设每 3、4 或 5 行将放置一个 2
,这取决于与 size = 0.5
列一起使用的名为 C
的变量。您可以在下面找到一个示例,说明数据框在 D
列中的外观。
df 示例:
| A | B | C | D |
|---|---|---|---|
| 0 | 100 | 0 | 1 |
| 1 | 100 | 0 | 2 |
| 2 | 1 | 0 | 1 |
| 3 | 1 | 0 | 1 |
| 4 | 1 | 0 | 1 |
| 5 | 1 | 0 | 1 |
| 6 | 1 | 0 | 1 |
| 7 | 1 | 0 | 1 |
| 8 | 1 | 0 | 1 |
| 9 | 1 | 0 | 1 |
| 10 | 1 | 0 | 1 |
| 11 | 1 | 0 | 1 |
| 12 | 1 | 0 | 1 |
| 13 | 1 | 0 | 1 |
| 14 | 100 | 0.5 | 1 |
| 15 | 100 | 0.5 | 2 |
| 16 | 1 | 0.5 | 1 |
| 17 | 1 | 0.5 | 1 |
| 18 | 1 | 0.5 | 2 |
| 19 | 1 | 0.5 | 1 |
| 20 | 1 | 0.5 | 1 |
| 21 | 1 | 0.5 | 1 |
| 22 | 1 | 0.5 | 2 |
| 23 | 1 | 0.5 | 1 |
| 24 | 1 | 0.5 | 1 |
| 25 | 1 | 0.5 | 1 |
| 26 | 1 | 0.5 | 2 |
| 27 | 1 | 0.5 | 1 |
我正在使用的一些代码可以在下面找到。
for num in df.A:
if ((df.A[num] % 2 == 0) and (df.B[num] == 100)):
D.append(1)
elif ((df.A[num] % 2 != 0) and (df.B[num] == 100)):
D.append(2)
elif df.B[num] != 100:
D.append(1)
##### ------ This code doesn't work as expected
if size < df.C[num] <= 2 * size:
for row in range(len(df)):
if row % 5 == 0:
D[num] = 2
# Code to complete the next step which will be similar to the previous
elif 2 * size < df.C[num] <= 3 * size:
pass
部分标记 ##### ------ This code doesn't work as expected
仅输出 2's
而不是具有 1's
并且仅针对所选行输出 2's
。我想使用基于 %
的条件可能不是最好的方法,因为我希望 2's
是等距的。但是,我想不出更好的方法。
关于如何解决这个问题的任何想法? 非常感谢。