擅长:python、mysql、java
<h3><code>pop</code>+<code>insert</code></h3>
<pre><code>import pandas as pd
df = pd.DataFrame({f'c{i}': [i] for i in range(1,16)})
cname = df.columns[-1]
df.insert(int(len(df.columns)/2), cname, df.pop(cname))
print(df)
# c1 c2 c3 c4 c5 c6 c7 c15 c8 c9 c10 c11 c12 c13 c14
#0 1 2 3 4 5 6 7 15 8 9 10 11 12 13 14
</code></pre>
<hr/>
<h3><code>np.r_</code></h3>
<p>您可以创建一个用于切片的.iloc索引列表。对于列的数量是偶数还是奇数,需要进行一些数学处理</p>
<pre><code>N = int(len(df.columns)/2)
r = len(df.columns)%2
idx = np.r_[0:N, -1, -N-r:-1]
#array([ 0, 1, 2, 3, 4, 5, 6, -1, -8, -7, -6, -5, -4, -3, -2])
df = df.iloc[:, idx]
# c1 c2 c3 c4 c5 c6 c7 c15 c8 c9 c10 c11 c12 c13 c14
#0 1 2 3 4 5 6 7 15 8 9 10 11 12 13 14
</code></pre>