python - 有条件地更改每个索引和列中数据帧的值的最快方法是什么?

标签 python python-3.x pandas numpy

有没有一种方法可以在不使用循环的情况下将验证条件(包括其自身值)的数据帧的每个元素减少一个常数?

例如,每个单元格 < 2 的值都会减少 1。

非常感谢。

最佳答案

我喜欢做这个掩蔽。 这是使用您的示例的低效循环

 #Example using loop
 for val in df['column']:
      if(val<2):
           val = val - 1

下面的代码给出了相同的结果,但通常会快得多,因为它不使用循环。

 # Same effect using masks
 mask = (df['column'] < 2) #Find entries that are less than 2.
 df.loc[mask,'column'] = df.loc[mask,'column'] - 1 #Subtract 1.

关于python - 有条件地更改每个索引和列中数据帧的值的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53991236/

相关文章:

python - Openpyxl:如何解决打开工作簿的问题

python - 创建 Pi 数字的直方图

python - 在 Python 中评估多个字符串相等性的便捷方法是什么?

python - 在 Python 中导入包

java - 如何在 map 中获得 5 个最重复的元素?

python - 在 Tkinter 中创建向导

python - 如何用 Python 搜索相似的列?

python - 在数据框中查找平均值的更有效方法?

python - 如何使用 Pandas 从数据库和本地数据框中进行选择?

python - 鼠标移动事件上的鼠标位置设置在父项而不是子项上