pandas
Gotchas of pandas
Поиск…
замечания
Gotcha вообще является конструкцией, которая хотя и документирована, но не интуитивно понятна. Gotchas производят некоторый результат, который обычно не ожидается из-за его встречно-интуитивного характера.
В пакете Pandas есть несколько gotchas, которые могут смутить кого-то, кто не знает о них, и некоторые из них представлены на этой странице документации.
Обнаружение отсутствующих значений с помощью np.nan
Если вы хотите обнаружить пропуски с
df=pd.DataFrame({'col':[1,np.nan]})
df==np.nan
вы получите следующий результат:
col
0 False
1 False
Это связано с тем, что сравнение отсутствующего значения с чем-либо приводит к False - вместо этого вы должны использовать
df=pd.DataFrame({'col':[1,np.nan]})
df.isnull()
что приводит к:
col
0 False
1 True
Integer и NA
Панды не поддерживают отсутствие атрибутов типа integer. Например, если у вас есть пропуски в столбце класса:
df= pd.read_csv("data.csv", dtype={'grade': int})
error: Integer column has NA values
В этом случае вам просто нужно использовать float вместо целых чисел или установить объект dtype.
Автоматическое выравнивание данных (поведение с учетом индекса)
Если вы хотите добавить серию значений [1,2] в столбец dataframe df, вы получите NaNs:
import pandas as pd
series=pd.Series([1,2])
df=pd.DataFrame(index=[3,4])
df['col']=series
df
col
3 NaN
4 NaN
потому что установка нового столбца автоматически выравнивает данные индексом, а ваши значения 1 и 2 будут получать индексы 0 и 1, а не 3 и 4, как в вашем кадре данных:
df=pd.DataFrame(index=[1,2])
df['col']=series
df
col
1 2.0
2 NaN
Если вы хотите игнорировать индекс, вы должны установить значения в конце:
df['col']=series.values
col
3 1
4 2