当前位置: 首页 > 知识库问答 >
问题:

正在为pandas更新iTError中的值

彭坚壁
2023-03-14

我正在做一些地理编码工作,我使用<code>selenium

for index, row in rche_df.iterrows():
    if isinstance(row.wgs1984_latitude, float):
        row = row.copy()
        target = row.address_chi        
        dict_temp = geocoding(target)
        row.wgs1984_latitude = dict_temp['lat']
        row.wgs1984_longitude = dict_temp['long']

我已经读过,为什么这个函数在我遍历pandas数据帧后不“生效”?我完全知道iterrow只提供了一个视图,而不是一个用于编辑的副本,但是如果我真的要逐行更新值呢?lambda可行吗?

共有2个答案

郝修为
2023-03-14

基于这个问题的另一种方式:

for index, row in rche_df.iterrows():
    if isinstance(row.wgs1984_latitude, float):
        row = row.copy()
        target = row.address_chi        
        dict_temp = geocoding(target)
        
        rche_df.at[index, 'wgs1984_latitude'] = dict_temp['lat']
        rche_df.at[index, 'wgs1984_longitude'] = dict_temp['long']

此链接描述了 .loc.at 之间的区别。很快,.at.loc 快。

令狐宣
2023-03-14

您从iterrows中获取的行是不再连接到原始数据帧的副本,因此编辑不会更改您的数据帧。值得庆幸的是,因为您从iterrows中获取的每个项目都包含当前索引,您可以使用它来访问和编辑数据帧的相关行:

for index, row in rche_df.iterrows():
    if isinstance(row.wgs1984_latitude, float):
        row = row.copy()
        target = row.address_chi        
        dict_temp = geocoding(target)
        rche_df.loc[index, 'wgs1984_latitude'] = dict_temp['lat']
        rche_df.loc[index, 'wgs1984_longitude'] = dict_temp['long']

根据我的经验,这种方法似乎比使用<code>apply

 类似资料:
  • 在的文档中: setState()不会立即突变this.state但会创建一个挂起的状态转换。调用此方法后访问this.state可能会返回现有值。 第二个(可选)参数是一个回调函数,它将在setState完成并重新呈现组件后执行。 如果我只是想更新我的状态,我会创建一个什么都不做的回调吗?

  • 问题内容: 有了Pandas中不错的索引方法,我就可以用各种方式提取数据了。另一方面,我仍然对如何更改现有DataFrame中的数据感到困惑。 在下面的代码中,我有两个DataFrames,我的目标是从第二个df的值更新第一个df中特定行的值。我该如何实现? 给 但是我怎么能做到这一点: 问题答案: 因此,首先, 大熊猫使用index更新 。当更新命令不更新任何内容时,请同时检查左侧和右侧。如果由

  • 我是android编程的新手,有人能帮助我或者指出为什么它会给我这个错误吗?我想从服务器上获取一些数据,比如硬件json下的数据,并获得名称和状态,但当我调用api时,它向我展示了这一点。

  • 问题内容: 我试图: 根据搜索条件查找文档, 如果找到,请更新一些属性 如果没有插入带有某些属性的文档。 我正在使用,因为我也在执行单个插入操作。我想在一次操作中完成所有操作。 但是,它什么都不会导致为更新/向上插入操作插入任何内容。 这是插入文档: 这是最新资料: 这就是我试图更新/更新的方式: 为什么不更新/更新呢? 注意 那是使用水线ORM的JS代码,它也使用mongodb本机驱动程序。 问

  • 问题内容: 我有以下代码,该代码将pandas数据框的一列中的值用作新数据框的列。数据框第一列中的值成为新数据框的索引。 从某种意义上说,我想将一个邻接表转换成一个邻接矩阵。这是到目前为止的代码: 这适用于此特定实例: 如果col3中的值不是数字,它将失败。我的问题是,是否有更优雅/更稳健的方式来做到这一点? 问题答案: 这看起来像是枢轴工作: 产量 如果您不希望使用MultiIndex列,则可以

  • 问题内容: 是否可以在生产环境中运行配置有更新数据库架构的Hibernate应用程序? 问题答案: 不,这是不安全的。 尽管Hibernate团队做出了最大的努力,但是您根本不能依靠 生产中的 自动更新。编写自己的补丁程序,使用DBA对其进行审核,对其进行测试,然后手动应用它们。 从理论上讲,如果 hbm2ddl更新 在开发中起作用,那么它也应在生产中起作用。但实际上,并非总是如此。 即使工作正常