Ho notato una strana differenza tra loc
e ix
quando si sostituisce un DataFrame in Panda.Differenza imprevista tra loc e ix
import pandas as pd
# Create a dataframe
df = pd.DataFrame({'id':[10,9,5,6,8], 'x1':[10.0,12.3,13.4,11.9,7.6], 'x2':['a','a','b','c','c']})
df.set_index('id', inplace=True)
df
x1 x2
id
10 10.0 a
9 12.3 a
5 13.4 b
6 11.9 c
8 7.6 c
df.loc[[10, 9, 7]] # 7 does not exist in the index so a NaN row is returned
df.loc[[7]] # KeyError: 'None of [[7]] are in the [index]'
df.ix[[7]] # 7 does not exist in the index so a NaN row is returned
Perché df.loc[[7]]
gettare un errore durante df.ix[[7]]
restituisce una riga con NaN? è un insetto? In caso contrario, perché loc
e ix
sono progettati in questo modo?
(Nota sto usando Pandas 0.17.1 su Python 3.5.1)
Deciso che questo è molto probabilmente un bug. Archiviato un rapporto [qui] (https://github.com/pydata/pandas/issues/11840) – Ben