擅长:python、mysql、java
<p>好吧,我假设两件事:</p>
<p>1)第4列中每个数字只有两个条目</p>
<p>2)Col4中具有相同编号的两个条目相邻放置(实际上这并不重要,如果不是这样,您可以始终按Col4对数据帧进行排序,您将有这个case)</p>
<p>代码如下:</p>
<pre><code>df = df.replace(np.nan,"None")
txt = "None"
for i in range(df.Col4.size):
if (df.loc[i,'Col5']=="None"):
df.loc[i,'Col5'] = txt
txt = "None"
else:
txt = df.loc[i,'Col5']
txt = "None"
for i in reversed(range(df.Col4.size)):
if (df.loc[i,'Col5']=="None"):
df.loc[i,'Col5'] = txt
txt = "None"
else:
txt = df.loc[i,'Col5']
</code></pre>
<p>我在这里做三步。你知道吗</p>
<p>1)用字符串替换所有nan,这样在使用if时就不会出现任何数据类型比较问题。你知道吗</p>
<p>2)按升序循环。如果第5列中的值为“None”,则替换为“txt”中的值。否则,“txt”变量将与Col5中的值一起存储。你知道吗</p>
<p>3)同一回路的顺序相反。你知道吗</p>
<p>我希望这能解决你的问题。你知道吗</p>