擅长:python、mysql、java
<p>基于<a href="https://stackoverflow.com/a/46191234/2137255">@piRsquared's</a>的答案,对于那些想要伪单音的人</p>
<pre><code>In [2689]: (df.query('id != "id"').replace(dict(id={'\d+': np.nan}), regex=True)
.assign(id=lambda x: x.ffill()).dropna()
.set_index(['id', 'Code'])
.replace({'y': 1, 'n': np.nan})
.rename(columns=lambda x: x.lower().replace('week', ''))
.stack()
.reset_index()
.rename(columns={'id': 'Day', 'level_2': 'Week'})
.drop(0, 1))
Out[2689]:
Day Code Week
0 sunday 100 1
1 sunday 100 2
2 sunday 200 2
3 sunday 300 3
4 Monday 500 2
5 Monday 500 3
6 Monday 600 1
7 Monday 600 2
8 Monday 600 3
9 Tuesday 800 2
10 Tuesday 800 3
11 Tuesday 900 1
12 Tuesday 900 3
</code></pre>