Чтобы правильно использовать идентификаторы, преобразуйте массив в список, содержащий только значения.i[0]
получает первое (и в данном случае только одно) значение из списка [2] и [3].
Затем используйте .loc[ids,columns]
, чтобы выбрать строки и столбцы, которые вы хотите скопировать.Нет необходимости в петле здесь.Это более простой и быстрый подход
df1=pd.DataFrame({
"column_1": [1, 2, 3, 4],
"column_2": ['A','B','C','D'],
"column_3": [3.1, 7.8, 9.0, 5.8]})
Arr1=np.array([[2],[3]])
#------------new-----------------
ids=[i[0] for i in Arr1.tolist()]
#--------------------------------
column_name = ['column_2','column_3']
#------------new-----------------
df2 = df1.loc[ids,column_name]
#--------------------------------