Поиск…


замечания

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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow