<p>有一个<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_dict.html" rel="nofollow">^{<cd1>}</a>方法:</p>
<pre><code>In [11]: DF.to_dict()
Out[11]:
{'a': {0: 'AAA', 1: 'ABA', 2: 'AAC', 3: 'AAB', 4: 'AAA'},
'b': {0: '86880690', 1: '86880690', 2: '86880690' 3: '86880690', 4: '86880690'},
'c': {0: '86914111', 1: '86914111', 2: '86914111', 3: '86914111', 4: '86914111'},
'd': {0: '22RV1', 1: 'A549', 2: 'BFTC-905', 3: 'BT-20', 4: 'C32'},
'e': {0: '2', 1: '2', 2: '3', 3: '2', 4: '2'},
'g': {0: '2', 1: '2', 2: '3', 3: '2', 4: '2'},
'h': {0: 'H', 1: 'L', 2: 'H', 3: 'H', 4: 'H'},
'i': {0: '-', 1: '-', 2: '-', 3: '-', 4: '-'}}
In [12]: DF.to_dict(orient="index")
Out[12]:
{0: {'a': 'AAA', 'b': '86880690', 'c': '86914111', 'd': '22RV1', 'e': '2', 'g': '2', 'h': 'H', 'i': '-'},
1: {'a': 'ABA', 'b': '86880690', 'c': '86914111', 'd': 'A549', 'e': '2', 'g': '2', 'h': 'L', 'i': '-'},
2: {'a': 'AAC', 'b': '86880690', 'c': '86914111', 'd': 'BFTC-905', 'e': '3', 'g': '3', 'h': 'H', 'i': '-'},
3: {'a': 'AAB', 'b': '86880690', 'c': '86914111', 'd': 'BT-20', 'e': '2', 'g': '2', 'h': 'H', 'i': '-'},
4: {'a': 'AAA', 'b': '86880690', 'c': '86914111', 'd': 'C32', 'e': '2', 'g': '2', 'h': 'H', 'i': '-'}}
</code></pre>
<p>记住这一点,您可以进行groupby:</p>
^{pr2}$
<hr/>
<p>也就是说,你可以使用直接向上的多重索引,而不是字典词典:</p>
<pre><code>In [31]: res = DF.set_index(["a", "d"])["e"]
In [32]: res
Out[32]:
a d
AAA 22RV1 2
ABA A549 2
AAC BFTC-905 3
AAB BT-20 2
AAA C32 2
Name: e, dtype: object
</code></pre>
<p>它的工作原理大致相同:</p>
<pre><code>In [33]: res["AAA"]
Out[33]:
d
22RV1 2
C32 2
Name: e, dtype: object
In [34]: res["AAA"]["22RV1"]
Out[34]: '2'
</code></pre>
<p><em>但这将是一个更节省空间/你仍然在熊猫。</em></p>