<p>如果使用<code>pandas</code>是一个选项,那么给定测试数据,您可以尝试以下操作:</p>
<pre><code>import pandas as pd
df = pd.read_csv('PSNIstreetCrimeMapDataRefined_Test.csv',delimiter=',')
df['First'] = df['First'].fillna(df['First'].isnull().cumsum())
</code></pre>
<p><strong>输出</strong>:</p>
<pre><code>>>> df
First Sec Third Fourth
0 R E C D
1 S F C D
2 1 S C D
3 V G C D
4 2 Q C D
5 3 F C D
6 E W C D
</code></pre>
<p>pandas将空白文件读取为<code>NaNs</code>,我用<code>NaN</code>值的累积和填充<code>NaN</code>值。您可以将输出<code>csv</code>保存为以下内容:</p>
<pre><code>df.to_csv('PSNIstreetCrimeMapDataRefinedAgain_Test.csv',index=False)
</code></pre>
<p><strong>更一般的方法</strong>:</p>
<p>如果一个或多个列具有<code>blank</code>行(即<code>NaN</code>值)。例如:</p>
<pre><code>>>> df
First Sec Third Fourth
0 R E C D
1 S NaN C D
2 NaN S C D
3 V G C D
4 NaN Q C D
5 NaN NaN C D
6 E W C D
</code></pre>
<p>我们可以将<code>apply</code>方法与上述解决方案结合使用:</p>
<pre><code>df = df.apply(lambda x : x.fillna(x.isnull().cumsum()))
print(df)
</code></pre>
<p><strong>输出:</strong></p>
<pre><code> First Sec Third Fourth
0 R E C D
1 S 1 C D
2 1 S C D
3 V G C D
4 2 Q C D
5 3 2 C D
6 E W C D
</code></pre>