擅长:python、mysql、java
<p>对于最新版本,可以使用参数<code>key</code>将值除以<code>_</code>并将值转换为整数:</p>
<pre><code>df_sorted = df.sort_values('Source', key=lambda x: x.str.split('_').str[1].astype(int))
</code></pre>
<p>或者可以通过<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.argsort.html" rel="noreferrer">^{<cd3>}</a>获取排序值的位置并传递给<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html" rel="noreferrer">^{<cd4>}</a>:</p>
<pre><code>df_sorted = df.iloc[df['Source'].str.split('_').str[1].astype(int).argsort()]
print (df_sorted)
Source LogP MolWt HBA HBD
0 cne_1 1.1732 263.405 3 1
1 cne_10 2.6639 197.237 2 0
2 cne_100 -0.2886 170.193 4 2
1031 cne_995 3.0179 347.219 4 2
1032 cne_996 4.8419 407.495 6 2
1033 cne_997 3.3560 354.524 3 1
1034 cne_998 7.5465 635.316 4 2
1035 cne_999 3.3514 389.556 4 1
3 cne_1000 1.9644 304.709 5 1
4 cne_1001 1.4986 162.144 3 1
</code></pre>