<p>试试看:(<code>x</code>>;<code>JSON [Patient record]</code>,<code>y</code>>;<code>JSON [Diagnosis record]</code></p>
<pre><code>df = pd.DataFrame(x)
df = pd.concat([df.pop('Patient').apply(lambda x: pd.Series(x[0])), df], axis=1)
df1 = pd.DataFrame(y)
df1 = pd.concat([df1.explode('Diagnosis')['Diagnosis'].apply(pd.Series), df1], axis=1)
df1.pop('Diagnosis')
df_merge = pd.merge(df,df1, on='Visit id', how='right')
</code></pre>
<p><strong>df\u合并:</strong></p>
<pre><code> Patient id Patient name Doctor id Visit id diagnosis id diagnosis name
0 BK1221 Tim AU1254 B0001 D1001 fever
1 BK1221 Tim AU1254 B0001 D1987 cough
2 BK1221 Tim AU1254 B0001 D1265 running nose
3 BK1209 Sue AU8766 B0002 D1987 cough
4 BK1209 Sue AU8766 B0002 D1453 stomach ache
</code></pre>
<hr/>
<p><strong>计数:</strong></p>
<pre><code>df_merge.groupby('diagnosis name')['Patient id'].count()
</code></pre>
<p>编辑:</p>
<p>尝试:</p>
<pre><code>df_merge.groupby('diagnosis name').agg({'Patient name': [list, 'count']}).reset_index()
</code></pre>
<hr/>
<pre><code>diagnosis name Patient name
list count
cough [Tim, Sue] 2
fever [Tim] 1
running nose [Tim] 1
stomach ache [Sue] 1
</code></pre>