我正在将一个XML转换成一个数据帧,它看起来是这样的:
我想为该页中的所有文本框复制pageflag列中的页码标记,在本例中,将第1行中的pageflag值复制到第9、10和11行
为此,我使用Dataframe.shift使用如下条件:
df['pageflag'] = np.where(df['pageflag']==0,df['pageflag'].shift(1),df['pageflag'])
它应该基于这个条件,以避免对已经有值的行进行移位,比如在本例中是第13行,其中存在一个新的页面属性
我面临的问题是,移位只发生在页码标记后面的一行,在我的例子中是第9行。第10行和第11行的值仍然为零,这不是我所期望的
这可以使用for循环实现,如下所示:
for i in range(1, len(df)):
if df['pageflag'][i] == 0:
df['pageflag'][i] = df['pageflag'][i - 1]
else:
df['pageflag'][i] = df['pageflag'][i]
但由于大型数据帧的性能问题,我希望避免这种情况
关于如何以最有效的方式实现这一点,有什么建议吗
通过^{} 将} :
0
值转换为NaN
后,可以使用^{相关问题 更多 >
编程相关推荐