您能帮忙解决一个具体任务吗?我需要逐行处理 pandas DataFrame 列。要点是“无”值必须转换为“0”或“1”,以便继续处理列中已有的“0”或“1”值。我已经通过使用“for”循环完成了它,并且它工作正常:
for i in np.arange(1, len(pd['signal'])):
if df.isnull(df['signal'].iloc[i]) and df['signal'].iloc[i-1] == 0:
df['signal'].iloc[i] = 0
if df.isnull(df['signal'].iloc[i]) and df['signal'].iloc[i-1] == 1:
df['signal'].iloc[i] = 1
但是,事实上这并不是迭代 DataFrame 的好方法。我尝试使用“loc”方法,但它带来了不正确的结果,因为这样每个步骤都不会考虑之前执行的结果,因此一些“None”值保持不变。
df.loc[(df.isnull(df['signal'])) & (df['signal'].shift(1) == 0), 'signal'] = 0
df.loc[(df.isnull(df['signal'])) & (df['signal'].shift(1) == 1), 'signal'] = 1
有谁知道如何在没有“for”循环的情况下实现此任务?
慕村225694
白猪掌柜的
相关分类