熊猫:检查和更改列中的所有项目

时间:2019-12-03 16:21:00

标签: python pandas vectorization

我尝试在这样的代码中运行熊猫数据框中的一列:

for item in df['delta']:
    if float(item) < 0:
        print(item)

每当我检测到值小于0的项目时,我都想加1,000,000并将结果放回数据框中。

我尝试过类似的事情:

df['delta'][item] = float(item) + 1000000

但是我得到一个关键错误。

如何访问for循环的当前位置?

2 个答案:

答案 0 :(得分:2)

假设你有

    df = pd.DataFrame({'col_1': [0,1,2,3,4,5,-1,-2,-3]})

   col_1
0      0
1      1
2      2
3      3
4      4
5      5
6     -1
7     -2
8     -3

您只需使用loc+=运算符即可

df.loc[df['col_1'] < 0, 'col_1'] += 10

   col_1
0      0
1      1
2      2
3      3
4      4
5      5
6      9
7      8
8      7

答案 1 :(得分:0)

我建议为此使用内置的apply()函数

df['delta'] = df['delta'].apply( lambda item: float(item) + 1000000 if float(item) < 0 else item )