<p>您可以重新索引并附加数据帧,然后<code>fillna()</code>如下所示:</p>
<p><strong>初始化:</strong></p>
<pre><code>df = pd.read_csv(io.StringIO(''' AccessName PolicyArn
0 arn:aws:glue:sample arn:aws:iam::971340810992:policy/service-role/...
1 arn:aws:glue:sample2 arn:aws:iam::971340810992:policy/service-role/...
2 - arn:aws:iam::971340810992:policy/service-role/...
3 arn:aws:s3:::sample3 arn:aws:iam::971340810992:policy/service-role/...
'''),sep='\s+')
df2 = pd.read_csv(io.StringIO(''' AccessName
0 sample-test
1 query_sample
2 us-east-1-sample'''),sep='\s+')
</code></pre>
<p><strong>解决方案</strong></p>
<pre><code>id = df.index[df['AccessName'] == ' -'][0] +1
start, end = id + df2.shape[0],df2.shape[0] + df.shape[0]
df.index = np.append(df.index[:id],np.arange(start,end)) # index : [0, 1, 2, 6]
df2.index = np.arange(id,id +df2.shape[0]) # index [3, 4, 5]
solution_df = df.append(df2).sort_index().fillna('fixed_value')
solution_df
>>> AccessName PolicyArn
0 arn:aws:glue:sample arn:aws:iam::971340810992:policy/service-role/...
1 arn:aws:glue:sample2 arn:aws:iam::971340810992:policy/service-role/...
2 - arn:aws:iam::971340810992:policy/service-role/...
3 sample-test fixed_value
4 query_sample fixed_value
5 us-east-1-sample fixed_value
6 arn:aws:s3:::sample3 arn:aws:iam::971340810992:policy/service-role/...
</code></pre>
<p>重要提示:
一般来说,对于大型数据集,不建议寻找涉及迭代的解决方案,尽量寻找向量化的解决方案,并避免像<code>.iterrows()</code>和<code>.apply()</code>这样的方法。祝你好运</p>