<p>将<a href="https://docs.python.org/3.6/library/collections.html#collections.Counter" rel="nofollow noreferrer">^{<cd1>}</a>与<code>dictionary comprehension</code>一起使用并分配给<code>DataFrame</code>:</p>
<pre><code>from collections import Counter
df = pd.DataFrame({k:Counter(v) for k, v in d.items()}).T.fillna(0).astype(int)
print (df)
arylpolyene hserlactone hserlactone-arylpolyene nrps siderophore \
A 1 2 0 1 1
B 0 1 1 1 1
C 0 0 0 3 1
D 0 0 0 1 1
t1pks-nrps terpene thiopeptide transatpks-nrps
A 1 1 1 1
B 0 0 1 0
C 2 0 0 0
D 1 0 0 0
</code></pre>
<p>编辑:</p>
<p>对于指示符值,使用<a href="http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MultiLabelBinarizer.html" rel="nofollow noreferrer">^{<cd4>}</a>:</p>
^{pr2}$
<hr/>
<pre><code>from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
df = pd.DataFrame(mlb.fit_transform(d.values()),columns=mlb.classes_, index=d.keys())
print (df)
arylpolyene hserlactone hserlactone-arylpolyene nrps siderophore \
A 1 1 0 1 1
B 0 1 1 1 1
C 0 0 0 1 1
D 0 0 0 1 1
t1pks-nrps terpene thiopeptide transatpks-nrps
A 1 1 1 1
B 0 0 1 0
C 1 0 0 0
D 1 0 0 0
</code></pre>