首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >替换dataframe Python中的值

替换dataframe Python中的值
EN

Stack Overflow用户
提问于 2016-12-30 22:10:45
回答 5查看 2.6K关注 0票数 3
代码语言:javascript
复制
Lon_X        Lat_Y
5,234234     6,3234234
5,234234     6,3234234
5,234234     6,3234234
5,234234     6,3234234
5,234234     6,3234234

我有像上面那样的熊猫/数据中心的GPS坐标。但是,它们使用逗号分隔符。利用熊猫将这些转换成浮动GPS坐标的最佳方法是什么?

代码语言:javascript
复制
for item in frame.Lon_X:
    float(item.replace(",", ".")) # makes the conversion but does not store it back

我尝试过迭代项函数,但是看起来非常慢,并给出了一个警告,我不太明白:

代码语言:javascript
复制
for index, value in frame.Lon_X.iteritems():
    frame.Lon_X[index] = float(value.replace(",", "."))

请参阅文档中的注意事项:从ipykernel导入的http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy作为应用程序

EN

Stack Overflow用户

发布于 2018-03-17 15:55:02

令人惊讶的是,在np系列上迭代比使用pd.series.str.replace更快。我用2m行系列做了下面的实验

代码语言:javascript
复制
setup = '''
import pandas as pd
import numpy as np
a = pd.Series(list('aabc') * 500000)
b = a.values.astype(str)
'''

a = '''
a[:] = a.str.replace("b", "d")
'''
b = '''
b[:] = np.char.replace(b, "b", "d")
'''
c = '''
for i, x in enumerate(b):
    if "b" in x:
        b[i] = "d"
'''
a_speed = min(timeit.Timer(a, setup=setup).repeat(7, 5))
b_speed = min(timeit.Timer(b, setup=setup).repeat(7, 5))
c_speed = min(timeit.Timer(c, setup=setup).repeat(7, 5))

结果:

a_speed = 2.3304627019997497

b_speed = 6.832672896000076

c_speed = 1.9407824309996613

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41403301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档