<pre><code>import pandas as pd
import numpy as np
df = pd.DataFrame([
['Quality Engineer','Financial Services'],
['Progammer',np.nan],
['Quality Engineer',np.nan],
['Progammer',"IT"],
['General manager',np.nan]],
columns=['job_title','job_industry'])
with pd.option_context('mode.use_inf_as_null', True):
df = df.sort_values('job_industry', ascending=False, na_position='last')
df["job_industry"].loc[(df['job_title'] == "General manager") & (df['job_industry'].isnull())] = "Manufacturing"
df['job_industry'] = df.groupby('job_title')['job_industry'].fillna(method="ffill")
</code></pre>
<p><code>df['job_industry'].isnull()</code>,这将验证<code>job_industry</code>列是否为空</p>
<p>下面的代码将按列job_industry按null值降序排序,因为如果前面出现nan值,nan的初始值将不会替换</p>
<pre><code>with pd.option_context('mode.use_inf_as_null', True):
df = df.sort_values('job_industry', ascending=False, na_position='last')
</code></pre>
<p>如果您更喜欢排序而不是输出,您可以尝试,<code>df.sort_index()</code></p>
<p><strong>O/p</strong></p>
<pre><code>+ + + -+
| | job_title | job_industry |
| + + -|
| 0 | Quality Engineer | Financial Services |
| 1 | Progammer | IT |
| 2 | Quality Engineer | Financial Services |
| 3 | Progammer | IT |
| 4 | General manager | Manufacturing |
+ + + -+
</code></pre>