python - Pandas:检查和更改列中的所有项目

标签 python pandas vectorization

我尝试运行一个代码,在其中浏览 pandas 数据框中的一列,如下所示:

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

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

我尝试过类似的方法:

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

但后来我遇到了一个关键错误。

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

最佳答案

假设你有

    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

关于python - Pandas:检查和更改列中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59161303/

相关文章:

python - 在ElasticSearch中执行 "Transaction"

python - 如何仅保留 pandas 数据帧每组的前 n% 行?

python - 将带有二维数组列的 pandas 数据框保存为 python 中的 Parquet 文件

python - 在pandas中读取csv时自动确定标题行

python - 将加法矢量化到由另一个数组索引的数组中

c++ - 在x86_64上加载/存储原子双浮点或SSE/AVX vector

python - 在 Python 2.7.11 中默认打印一个函数?

python - 对 Python 最小测验感到困惑

python - 将图像文件夹放在python exe中的什么位置?

python - numpy.dot 对大型数组有精度限制吗?