【发布时间】:2021-09-27 20:22:57
【问题描述】:
我有一个疑问。
这两者中哪一个执行得更快?我正在使用 Google Colab。
这样,我使用 pandas 的 itrrrow() 循环遍历所有行。
我写的这两个只是作为示例,以了解两者哪个更快。
在 withColumn 的情况下,如何将其应用于 randomFunction 函数?
这是 UDF:
import string
def randomFunction(text):
if (text == "Hello"):
cnt_en += 1
else:
cnt_en -= 1
return cnt_en
这是一个循环循环:
cnt_en = 0
for index, row in pandasDF.iterrows():
if (text == "Hello"):
cnt_en += 1
else:
cnt_en -= 1
print (cnt_en)
谁能告诉我这两个哪个更快? 我有一个包含 2,500,000 行的数据框。
【问题讨论】:
-
为什么你不使用 withColumn() df = df.withColumn("col_name", F.col("col_name").cast(T.IntegerType())) -> 这将是方式比上面两个快
-
@dsk 完美!!但是,如果它不是字符串到整数转换(反之亦然)之类的“标准”函数怎么办?例如我刚刚添加到上述问题中的函数?
标签: python pandas pyspark google-colaboratory data-analysis