假设我有一个这样的df:
posF ffreq posR rfreq
0 10 0.50 11.0 0.08
1 20 0.20 31.0 0.90
2 30 0.03 41.0 0.70
3 40 0.72 51.0 0.08
4 50 0.09 81.0 0.78
5 60 0.09 NaN NaN
6 70 0.01 NaN NaN
7 80 0.09 NaN NaN
8 90 0.08 NaN NaN
9 100 0.02 NaN NaN
在posr列中,我们看到它从11跳到31,在“20”中没有值。我想插入一个值来填充这个空间,它本质上就是
posF
价值,以及
NA
,所以我得到的df如下所示:
posF ffreq posR rfreq
0 10 0.50 11.0 0.08
1 20 0.20 20 NaN
2 30 0.03 31.0 0.90
3 40 0.72 41.0 0.70
4 50 0.09 50 NaN
5 60 0.09 60 NaN
6 70 0.01 70 NaN
7 80 0.09 80 NaN
8 90 0.08 81.0 0.78
9 100 0.02 100 NaN
所以我想用位置中的NaN值填充
POSF
介于
posR
.
我尝试做的只是创建一个虚拟列表,并根据值是否小于a(我在这里看到了这个缺陷,但我不知道如何修复它)向列表中添加值。
insert_rows = []
for x in df['posF']:
for a,b in zip(df['posR'], df['rfreq']):
if x
insert_rows.append([x, 'NA'])
print(len(insert_rows))#21, should be 5
我意识到它在附加X多次,直到它达到存在的条件。
在此之后,我将创建一个新的df,并将这些值添加到原始的2列中,使它们的长度相同。
如果你能想出一个更好的标题,请随意编辑。