7
Come posso modificare ogni elemento in un DataFrame con indicizzazione gerarchica? Per esempio, forse voglio convertire stringhe in carri allegorici:Modifica dei dati in un dataframe con indicizzazione gerarchica
from pandas import DataFrame
f = DataFrame({'a': ['1,000','2,000','3,000'], 'b': ['2,000','3,000','4,000']})
f.columns = [['level1', 'level1'],['item1', 'item2']]
f
Out[152]:
level1
item1 item2
0 1,000 2,000
1 2,000 3,000
2 3,000 4,000
ho provato questo:
def clean(group):
group = group.map(lambda x: x.replace(',', ''))
return group
f.apply(clean)
Out[153]:
(level1, item1) (level1, item2)
0 1000 2000
1 2000 3000
2 3000 4000
Come potete vedere, cambia l'indicizzazione gerarchica un bel po '. Come posso evitare questo? O forse c'è un modo migliore.
Grazie
Grande. Si applica passare le colonne compreso item1, item2 quando uso axis = 0? Cosa succede quando c'è un'indicizzazione gerarchica nelle colonne e nelle righe? –
Uhm ... Ho già provato questo e 'appiattisce' i livelli. Conosci una soluzione per questo? –
@RobertSmith Quale versione di panda stai usando? Non si appiattisce per me in '0.10' (anche se' applymap' lo fa). –