熊猫数据框根据条件更新值

时间:2020-11-11 09:12:32

标签: python-3.x pandas

我有一个名为project_layers的熊猫数据框,它有一个名为ID的列。 我正在将ID的值从project_layers复制到gdf['wsiintid'] 直接副本为:

gdf['wsiintid'] = project_layers['ID']

但是,有一些空的''值,因此我想根据条件更新这些值 我必须根据一些联接来找出实际值,但这是该问题范围之外的另一个问题。

    for layer in project_layers['ID']:
        if layer == '':
            print('value missing')
            gdf['wsiintid'] = <some value>
        else:
            # add in the value from project_layers['ID']

我该如何实现?

编辑

当前输出

data = {'a column':  ['a value', 'a value', 'a value', 'a value',],
        'wsiintid': ['012', '', '', '017'],
         ....
        }

结果输出

data = {'a column':  ['a value', 'a value', 'a value', 'a value'],
        'wsiintid': ['012', 'Y', 'Q', '017'],
         ....
        }

Y和Q作为占位符添加了某个实际值,可能有许多''实例。因此,逻辑:对于该行,有任何''值,如果是,则进行一些计算以获得一个值(此处未显示),然后将该值插入wsiintid列而不是{{1 }}值。查看下一行,应用相同的逻辑。

2 个答案:

答案 0 :(得分:0)

看看numpy.where。您可以做类似的事情

np.where(project_layers['ID']=="", <some value>, project_layers['ID'])

答案 1 :(得分:0)

这可以完成工作

    for line, row in enumerate(gdf.itertuples(), 1):
        if row.wsiintid == '':
            gdf.at[row.Index, 'wsiintid']='xxx'

一旦我将变量的计算结果添加到变量中,就可以添加变量而不是“ xxx”。