【发布时间】:2016-08-03 19:38:04
【问题描述】:
如何将 pandas 数据帧转换为 sparse 字典字典,其中仅显示某些截止的索引。在下面的玩具示例中,我只想要值 > 0
的每一列的索引import pandas as pd
table1 = [['gene_a', -1 , 1], ['gene_b', 1, 1],['gene_c', 0, -1]]
df1 = pd.DataFrame(table)
df1.columns = ['gene','cell_1', 'cell_2']
df1 = df1.set_index('gene')
dfasdict = df1.to_dict(orient='dict')
这给出了:
dfasdict = {'cell_1': {'gene_a': -1, 'gene_b': 0, 'gene_c': 0}, 'cell_2': {'gene_a': 1, 'gene_b': -1, 'gene_c': -1}}
但所需的输出是一个稀疏字典,其中只显示小于零的值:
desired = {'cell_1': {'gene_a': -1}, 'cell_2': {'gene_b': -1, 'gene_c': -1}}
我可以在创建后进行一些处理来更改 dfasdict 字典,但我想在同一步骤中进行转换,因为之后的处理涉及迭代非常大的字典。这可以在 pandas 中完成吗?
【问题讨论】:
-
This 你应该会感兴趣。
标签: python dictionary pandas