繁体   English   中英

了解 Pandas 中矢量化的简单示例

[英]Simple example to understand vectorisation in Pandas

我是 Python 的新手,我正在尝试了解矢量化在 pandas 数据帧中的工作原理。

我们以这个 dataframe 为例:

df = pd.DataFrame([1,2,3,4,5,6,7,8,9,10])

假设我想添加一个值为 0 的新列flag ,如果第一列的条目低于df.mean()值,否则为值 1。 结果将是:

df["flag"] = [0,0,0,0,0,1,1,1,1,1]

谁能解释我如何将此元素明智检查应用于 dataframe 与使用循环相比有什么区别?

您可以简单地编写比较,pandas 将负责 rest。 看看这个:

mean_val = df[0].mean() # The mean of your first column
df["flag"] = (df[0] >= mean_val).astype(int)
# the 'astype(int)' is used to get 1/0 instead of True/False

这样做的好处是:

  1. 更简单的读写。
  2. Pandas 可以进行许多优化,因为它知道它将进行元素比较而不是通用循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM