<p>对所有组合使用<code>product</code>,使用左连接创建<code>DataFrame</code>和<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html" rel="nofollow noreferrer">^{<cd3>}</a>:</p>
<pre><code>year = [2018]
Month = [1,2]
from itertools import product
df1 = pd.DataFrame(list(product(year, Month, df['speciality_id'])),
columns=['Year','Month','speciality_id'])
print (df1)
Year Month speciality_id
0 2018 1 1
1 2018 1 2
2 2018 1 3
3 2018 1 4
4 2018 1 5
5 2018 1 6
6 2018 1 7
7 2018 2 1
8 2018 2 2
9 2018 2 3
10 2018 2 4
11 2018 2 5
12 2018 2 6
13 2018 2 7
</code></pre>
<hr/>
<pre><code>df = df1.merge(df, on='speciality_id', how='left')
print (df)
Year Month speciality_id speciality_name
0 2018 1 1 Acupuncturist
1 2018 1 2 Andrologist
2 2018 1 3 Anaesthesiologist
3 2018 1 4 Audiologist
4 2018 1 5 Ayurvedic Doctor
5 2018 1 6 Biochemist
6 2018 1 7 Biophysicist
7 2018 2 1 Acupuncturist
8 2018 2 2 Andrologist
9 2018 2 3 Anaesthesiologist
10 2018 2 4 Audiologist
11 2018 2 5 Ayurvedic Doctor
12 2018 2 6 Biochemist
13 2018 2 7 Biophysicist
</code></pre>