<p>我相信您可以创建范围并将其添加到第一个值中,因为<code>Sex</code>使用<code>ffill</code>:</p>
<pre><code>r = np.arange(len(df))
df['Team'] = df.loc[0, 'Team'] + r
df['Code'] = df.loc[0, 'Code'] + r
df['Sex'] = df['Sex'].ffill()
print (df)
Word Count Team Sex Code
0 develop 9 1.0 M 45.01
1 Effective 7 2.0 M 46.01
2 professional 8 3.0 M 47.01
3 approach 5 4.0 M 48.01
4 raster 34 5.0 M 49.01
5 Sad 55 6.0 M 50.01
6 water 2 7.0 M 51.01
7 soil 7 8.0 M 52.01
8 farming 9 9.0 M 53.01
9 deep 12 10.0 M 54.01
</code></pre>
<p>更一般的广播:</p>
^{pr2}$
<p>编辑:</p>
<p>如果只有float之前有字符串,则可以将其提取到<code>df1</code>,添加范围和最后添加前缀:</p>
<pre><code>r = np.arange(len(df))
df['Team'] = (df.loc[0, 'Team'] + r).astype(int)
df1 = df.loc[[0], 'Code'].str.extract('(\D+)(\d+\.\d+)', expand=False)
print (df1)
0 1
0 P 45.01
df['Code'] = float(df1.loc[0, 1]) + r
df['Code'] = df1.loc[0, 0] + df['Code'].astype(str)
df['Sex'] = df['Sex'].ffill()
print (df)
Word Count Team Sex Code
0 develop 9 1 M P45.01
1 Effective 7 2 M P46.01
2 professional 8 3 M P47.01
3 approach 5 4 M P48.01
4 raster 34 5 M P49.01
5 Sad 55 6 M P50.01
6 water 2 7 M P51.01
7 soil 7 8 M P52.01
8 farming 9 9 M P53.01
9 deep 12 10 M P54.01
</code></pre>
<p>编辑:</p>
<p>错误似乎没有第一个索引值<code>0</code>,而是其他值。也可以使用按位置选择的<code>iloc</code>:</p>
<pre><code>r = np.arange(len(df))
df['Team'] = (df.iloc[0, df.columns.get_loc('Team')] + r).astype(int)
df1 = df.iloc[[0], df.columns.get_loc('Code')].str.extract('(\D+)(\d+\.\d+)', expand=False)
df['Code'] = float(df1.loc[0, 1]) + r
df['Code'] = df1.loc[0, 0] + df['Code'].astype(str)
df['Sex'] = df['Sex'].ffill()
print (df)
Word Count Team Sex Code
0 develop 9 1 M P45.01
1 Effective 7 2 M P46.01
2 professional 8 3 M P47.01
3 approach 5 4 M P48.01
4 raster 34 5 M P49.01
5 Sad 55 6 M P50.01
6 water 2 7 M P51.01
7 soil 7 8 M P52.01
8 farming 9 9 M P53.01
9 deep 12 10 M P54.01
</code></pre>