是否想通过比较熊猫数据框中的另一列来为新列分配值?

时间:2019-04-22 02:59:00

标签: python python-3.x pandas

我有一个数据框,并且有一个名为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)

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