擅长:python、mysql、java
<p>使用:</p>
<pre><code>m = df.columns.str.contains('stock')
cols_change = df.columns[m]
num = ('0'+pd.Index(range(1,len(cols_change)+1)).astype(str)).str[-2:]
df.columns = df.columns[~m].tolist()+[f'{name}:{n}' for n,name in zip(num,cols_change)]
print(df)
Date stockA:01 stockB:02 stockC:03 stockD:04 stockE:05
0 2020-01-01 1 1 2 1 3
1 2020-01-01 1 2 2 1 2
2 2020-01-01 1 1 3 2 1
3 2020-01-01 3 1 2 1 2
</code></pre>
<p>或与<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.difference.html" rel="nofollow noreferrer">^{<cd1>}</a></p>
<pre><code>cols_change = df.columns.difference(['Date'])
num = ('0'+pd.Index(range(1,len(cols_change)+1)).astype(str)).str[-2:]
df.columns = ['Date']+[f'{name}:{n}' for n,name in zip(num,cols_change)]
</code></pre>