Как установить несколько значений в кадре данных Pandas одновременно? ⇐ Python
-
Anonymous
Как установить несколько значений в кадре данных Pandas одновременно?
У меня есть большой фрейм данных и список множества местоположений, которым мне нужно установить определенное значение. В настоящее время я перебираю местоположения, чтобы установить значения одно за другим:
импортировать панд как pd импортировать numpy как np #большой фрейм данных df = pd.DataFrame(столбцы=диапазон(100), индекс=диапазон(100)) #index значения, которые нужно установить ix = np.random.randint(0, 100,1000) #значения столбца, которые нужно установить iy = np.random.randint(0, 100,1000) #установка указанных местоположений на 1, одно за другим для k в диапазоне (len(ix)): df.loc[ix[k], iy[k]]=1 Это кажется непомерно медленным. В приведенном выше примере на моей машине последний цикл for занимает 0,35 секунды. С другой стороны, если я это сделаю
df.loc[ix, iy]=1 Это занимает всего 0,035 секунды, то есть в десять раз быстрее. К сожалению, это не дает правильного результата, так как устанавливает все комбинации элементов ix и iy в 1. Мне было интересно, существует ли такой же быстрый способ установить значения многих местоположений одновременно, избегая перебора местоположений?
У меня есть большой фрейм данных и список множества местоположений, которым мне нужно установить определенное значение. В настоящее время я перебираю местоположения, чтобы установить значения одно за другим:
импортировать панд как pd импортировать numpy как np #большой фрейм данных df = pd.DataFrame(столбцы=диапазон(100), индекс=диапазон(100)) #index значения, которые нужно установить ix = np.random.randint(0, 100,1000) #значения столбца, которые нужно установить iy = np.random.randint(0, 100,1000) #установка указанных местоположений на 1, одно за другим для k в диапазоне (len(ix)): df.loc[ix[k], iy[k]]=1 Это кажется непомерно медленным. В приведенном выше примере на моей машине последний цикл for занимает 0,35 секунды. С другой стороны, если я это сделаю
df.loc[ix, iy]=1 Это занимает всего 0,035 секунды, то есть в десять раз быстрее. К сожалению, это не дает правильного результата, так как устанавливает все комбинации элементов ix и iy в 1. Мне было интересно, существует ли такой же быстрый способ установить значения многих местоположений одновременно, избегая перебора местоположений?
Мобильная версия