Wie konvertiere ich einen Pandas DataFrame in Sparse Dictionary of Dictionaries, wo nur die Indizes von einigen Cutoff angezeigt werden. Im Spielzeug Beispiel unten, ich möchte nur Indizes für jede Spalte, deren Werte> 0Pandas Dataframe in spärlich Wörterbuch von Wörterbüchern
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')
Das gibt:
dfasdict = {'cell_1': {'gene_a': -1, 'gene_b': 0, 'gene_c': 0}, 'cell_2': {'gene_a': 1, 'gene_b': -1, 'gene_c': -1}}
aber der gewünschte Ausgang ist eine spärliche Wörterbuch, in dem nur Werte von weniger als Null angezeigt:
desired = {'cell_1': {'gene_a': -1}, 'cell_2': {'gene_b': -1, 'gene_c': -1}}
ich einige Berechnungen durchführen können dieändernWörterbuch nach der Erstellung, aber ich möchte die Konvertierung im selben Schritt durchführen, da die Verarbeitung danach die Iteration über sehr große Wörterbücher umfasst. Ist es möglich, alles in Pandas zu tun?
[Dies] (http://pandas.pydata.org/pandas-docs/stable/sparse.html) von Interesse sein sollte für dich. – ursan