擅长:python、mysql、java
<p>假设您的数据保存在<strong>数据框中:</p>
<pre><code>extracted = {}
for k in df.name:
values = []
for i, value in enumerate(df.type1):
if value == k:
values.append(df.type2[i])
extracted[k] = values
</code></pre>
<p>您可以使用列表理解在一行中提取数据:</p>
<pre><code>{k:[df.type2[i] for i, value in enumerate(df.type1) if value==k] for k in df.name}
</code></pre>
<p>两者都产生:</p>
<pre><code>{'a': ['q', 'w', 'e', 'r'], 'b': ['t', 'y', 'u', 'i', 'o'], 'c': ['p', 'a', 's'], 'd': ['d', 'f']}
</code></pre>
<p>您还可以将dict中的值设为如下数据帧:</p>
<pre><code>{k:df.type2[df.type1==k] for k in df.name}
</code></pre>
<p>由此产生:</p>
<pre><code>{'a':
0 q
1 w
2 e
3 r
Name: type2, dtype: object,
'b':
4 t
5 y
6 u
7 i
8 o
Name: type2, dtype: object,
'c':
9 p
10 a
11 s
Name: type2, dtype: object,
'd':
12 d
13 f
Name: type2, dtype: object}
</code></pre>