我有一个数据框,并且有一个名为save的列名。在这笔节省中,它具有正值和负值。我想检查是否节省的是负数,然后在新列中分配1(需要创建一个名为flag_negative的新列名)。如果节省为正,则在新列中分配0。我在“储蓄”列中缺少一个我不想做的事。保持原状。
我想应用循环或其他任何简单方法。
我的数据框名称是df
我想获得以下消息
行数:9000
节省flag_negative
100 0
-76 1
1200 0
-
-200 1
500 0
我尝试了循环,并创建了新的列作为flag_ negatvie。但是我对所有行都一无所获
下面是我的代码
for i in sum['savings']:
if i>0:
sum['flag_negative'] = print(0)
elif i == " ":
sum['flag_negative'] = print(" ")
else:
sum['flag_negative'] = print(1)
答案 0 :(得分:0)
如果您的数据框是这样的:
savings
0 -4
1 -41
2 174
3 -103
4 -194
5 -160
6 126
7 100
8 -125
9 -71
10 -159
11 -100
12 -30
13 -50
14 83
15 124
16 -123
17 -70
18 -71
19 -29
然后,您可以轻松地按正/负过滤并分配给新列,如下所示:
df.loc[df.savings < 0, 'flag_negative'] = 1
df.loc[df.savings >= 0, 'flag_negative'] = 0
导致:
savings flag_negative
0 -4 1.0
1 -41 1.0
2 174 0.0
3 -103 1.0
4 -194 1.0
5 -160 1.0
6 126 0.0
7 100 0.0
8 -125 1.0
9 -71 1.0
10 -159 1.0
11 -100 1.0
12 -30 1.0
13 -50 1.0
14 83 0.0
15 124 0.0
16 -123 1.0
17 -70 1.0
18 -71 1.0
19 -29 1.0