回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有如下数据帧:</p>
<pre><code>,VM,Storage Capacity MB,Memory Capacity MB,Powerstate,CPUs
0,abc1234,102400.0,4096,poweredOn,1
1,xyz1234,81920.0,4096,poweredOn,1
2,abc1234,,4096,poweredOff,1
3,xyz1234,,4096,poweredOff,1
</code></pre>
<p>具有NaN值的行需要替换为非零的第一个匹配。输出需要如下:</p>
<pre><code>,VM,Storage Capacity MB,Memory Capacity MB,Powerstate,CPUs
0,abc1234,102400.0,4096,poweredOn,1
1,xyz1234,81920.0,4096,poweredOn,1
2,abc1234,102400.0,4096,poweredOff,1
3,xyz1234,81920.0,4096,poweredOff,1
</code></pre>
<p>使用<code>fillna.method('lasfil')</code>并不能真正替换为第一个匹配</p>
<pre><code> import pandas
file2 = pd.read_csv(r'c:\temp\pd_powerstate_new_south.csv')
file2 = pd.read_csv(r'c:\temp\pd_powerstate_new_south.csv')
file1.set_index('VM')
file2.set_index('VM')
merged_data = pd.merge(left = file1, right = file2, how = 'outer')
merged_data.fillna("some custom
method").to_csv(r'c:\temp\mergeddata.csv')
</code></pre>
<p>实际结果如下:</p>
<pre><code> ,VM,Storage Capacity MB,Memory Capacity MB,Powerstate,CPUs 0,abc1234,102400.0,4096,poweredOn,1
1,xyz1234,81920.0,4096,poweredOn,1
2,abc1234,102400.0,4096,poweredOff,1
3,xyz1234,81920.0,4096,poweredOff,1
</code></pre>