import pandas as pd
series_source = pd.Series([1, 2, 3, 4], dtype=int)
normal_index = pd.Series([True, False, True, True], dtype=bool)
big_index = pd.Series([True, False, True, True, False, True], dtype=bool)
# Both indexes give back: pd.Series([1, 2, 3, 4], dtype=int)
# no warnings are raised!
assert (series_source[normal_index] == series_source[big_index]).all()
df_source = pd.DataFrame(
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
]
)
# no warning - works as expected: grabs rows 0, 2, and 3
df_normal_result = df_source[normal_index]
# UserWarning: Boolean Series key will be reindexed to match DataFrame index.
# (but still runs)
df_big_result = df_source[big_index]
# passes - they are equivalent
assert df_normal_result.equals(df_big_result)
print("Complete")
Почему индексация series_source с помощью big_index не вызывает предупреждение, хотя большой индекс имеет больше значений, чем источник ? Что панды делают под капотом, чтобы выполнить индексацию серий?
(Сравните это с индексацией df_source, где выдается явное предупреждение о том, что big_index необходимо переиндексировать, чтобы операция работала.)
В документации по индексированию утверждается, что:
Использование логического вектора для индексации серии работает точно так же, как в NumPy
ndarray
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([True, False, True, True, False])
c = np.array([True, False, True, True, False, True, True])
# returns an ndarray of [1,3, 4] as expected
print(a[b])
# raises IndexError: boolean index did not match indexed array along axis 0;
# size of axis is 5 but size of corresponding boolean axis is 7
print(a[c])
Поэтому не похоже, что эта функциональность соответствует Numpy, как утверждается в документации. Что происходит?
(Мои версии — pandas==2.2.2 и numpy==2.0.0.)
# Both indexes give back: pd.Series([1, 2, 3, 4], dtype=int) # no warnings are raised! assert (series_source[normal_index] == series_source[big_index]).all()
# no warning - works as expected: grabs rows 0, 2, and 3 df_normal_result = df_source[normal_index]
# UserWarning: Boolean Series key will be reindexed to match DataFrame index. # (but still runs) df_big_result = df_source[big_index]
# passes - they are equivalent assert df_normal_result.equals(df_big_result) print("Complete") [/code] [b]Почему индексация series_source с помощью big_index не вызывает предупреждение, хотя большой индекс имеет больше значений, чем источник ?[/b] Что панды делают под капотом, чтобы выполнить индексацию серий? (Сравните это с индексацией df_source, где выдается явное предупреждение о том, что big_index необходимо переиндексировать, чтобы операция работала.) В документации по индексированию утверждается, что:
Использование логического вектора для индексации серии работает точно так же, как в NumPy ndarray
Однако, если я сделать [code]import numpy as np
a = np.array([1, 2, 3, 4, 5]) b = np.array([True, False, True, True, False]) c = np.array([True, False, True, True, False, True, True])
# returns an ndarray of [1,3, 4] as expected print(a[b])
# raises IndexError: boolean index did not match indexed array along axis 0; # size of axis is 5 but size of corresponding boolean axis is 7 print(a[c]) [/code] Поэтому не похоже, что эта функциональность соответствует Numpy, как утверждается в документации. Что происходит? (Мои версии — pandas==2.2.2 и numpy==2.0.0.)
У меня есть приложение Flutter, которое отлично работает на Android. Я создал проект ios и пытаюсь запустить его, но вижу следующую ошибку:
Could not build the precompiled application for the device.
Error (Xcode):...
У меня есть маскированный набор данных за 30 лет, содержащий значения для дней, в которые наблюдалась волна тепла. Я хочу рассчитать возникновение самой продолжительной тепловой волны в каждой ячейке сетки. Приведенный ниже код работает нормально,...
pandas 2.2.3
Давайте рассмотрим два варианта определения пользовательского подтипа Pandas.series . В первом из них не добавляются пользовательские свойства, в то время как во втором можно включено пользовательские метаданные:
import pandas as pd...
pandas 2.2.3
Давайте рассмотрим два варианта определения пользовательского подтипа Pandas.series . В первом из них не добавляются пользовательские свойства, в то время как во втором можно включено пользовательские метаданные:
import pandas as pd...
pandas 2.2.3
Давайте рассмотрим два варианта определения пользовательского подтипа Pandas.series . В первом из них не добавляются пользовательские свойства, в то время как во втором можно включено пользовательские метаданные:
import pandas as pd...