Ho un dataframe Panda con due indiciChange Pandas indice tipo di dati su MultiIndex
Column1
indexA indexB
1001 aaa 1
bbb 1
ccc 1
ddd 1
creati da
pd.read_sql(sql=sql, index_col=['indexA', 'indexB'])
MySQL sta leggendo in indexB
come unicode e vorrei convertirlo in una stringa . Il mio obiettivo è di ruotare la tabella e inserire le voci in indexB
come nomi di colonne. Quando faccio questo con i valori Unicode Ottengo i seguenti nomi di colonna:
� � � � � � � � �
durante l'esecuzione
pd.read_sql(sql=sql, index_col=['indexA', 'indexB']).unstack().fillna(0)
EDIT: Un commento ha suggerito il seguente:
df = pd.read_sql(sql)
df['indexB'] = df['indexB'].astype(str)
df = df.set_index(('indexA', 'indexB'), drop=True)
che è un bel lavoro intorno al mio problema (grazie). Sarebbe bello sapere se questo può essere fatto durante l'inizializzazione.
Hai provato 'df ['indexB'] = df ['indexB']. Astype (str)'? –
Non penso che tu possa accedere a indici del genere. Il precedente ritorna 'KeyError:' indexB'' – Sal
Giusto, scusa, avresti bisogno di 'df = pd.read_sql (sql); df ['indexB'] = df ['indexB']. astype (str); df = df.set_index (('indexA', 'indexB'), drop = True)) ' –