我有一个名为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 }}值。查看下一行,应用相同的逻辑。
答案 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”。