gpt4 book ai didi

python - 更快地处理 Pandas 中的 Dataframe

转载 作者:太空狗 更新时间:2023-10-30 02:19:23 25 4
gpt4 key购买 nike

我正在尝试处理非常大的文件(超过 10,000 个观测值),其中邮政编码不容易格式化。我需要将它们全部转换为前 5 位数字,这是我当前的代码:

def makezip(frame, zipcol):
i = 0
while i < len(frame):
frame[zipcol][i] = frame[zipcol][i][:5]
i += 1
return frame

frame 是数据框,zipcol 是包含邮政编码的列的名称。虽然这有效,但需要很长时间才能处理。有没有更快的方法?

最佳答案

您可以在字符串列上使用 .str 访问器来访问某些特定的字符串方法。在这上面,你还可以切片:

frame[zipcol] = frame[zipcol].str[:5]

基于一个小示例,这比遍历行快 50 倍左右:

In [29]: s = pd.Series(['testtest']*10000)

In [30]: %timeit s.str[:5]
100 loops, best of 3: 3.06 ms per loop

In [31]: %timeit str_loop(s)
10 loops, best of 3: 164 ms per loop

In [27]: def str_loop(s):
.....: for i in range(len(s)):
.....: s[i] = s[i][:5]
.....:

关于python - 更快地处理 Pandas 中的 Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com