Устанавливает значение для конкретной ячейки в pandas DataFrame с помощью iloc

У меня есть вопрос, подобный этому и этому . Разница в том, что я должен выбирать строку по положению, так как я не знаю индекс.

Я хочу сделать что-то вроде df.iloc[0, 'COL_NAME'] = x , но iloc не разрешает этот вид доступа. Если я делаю df.iloc[0]['COL_NAME] = x появляется предупреждение о цепочке индексирования.

3 Solutions collect form web for “Устанавливает значение для конкретной ячейки в pandas DataFrame с помощью iloc”

Для смешанного положения и индекса используйте .ix . НО вам нужно убедиться, что ваш индекс не целочисленный, иначе это вызовет путаницу.

 df.ix[0, 'COL_NAME'] = x 

Обновить:

Кроме того, попробуйте

 df.iloc[0, df.columns.get_loc('COL_NAME')] = x 

Пример:

 import pandas as pd import numpy as np # your data # ======================== np.random.seed(0) df = pd.DataFrame(np.random.randn(10, 2), columns=['col1', 'col2'], index=np.random.randint(1,100,10)).sort_index() print(df) col1 col2 10 1.7641 0.4002 24 0.1440 1.4543 29 0.3131 -0.8541 32 0.9501 -0.1514 33 1.8676 -0.9773 36 0.7610 0.1217 56 1.4941 -0.2052 58 0.9787 2.2409 75 -0.1032 0.4106 76 0.4439 0.3337 # .iloc with get_loc # =================================== df.iloc[0, df.columns.get_loc('col2')] = 100 df col1 col2 10 1.7641 100.0000 24 0.1440 1.4543 29 0.3131 -0.8541 32 0.9501 -0.1514 33 1.8676 -0.9773 36 0.7610 0.1217 56 1.4941 -0.2052 58 0.9787 2.2409 75 -0.1032 0.4106 76 0.4439 0.3337 

Если вы знаете позицию, почему бы просто не получить индекс от этого?

Затем используйте .loc:

 df.loc[index, 'COL_NAME'] = x 

Одна вещь, которую я хотел бы добавить здесь, это то, что функция at на кадре данных намного быстрее, особенно если вы выполняете множество назначений отдельных (не срезанных) значений.

 df.at[index, 'col_name'] = x 

По моему опыту, я получил 20-кратное ускорение. Вот запись, которая является испанской, но все же создает впечатление о том, что происходит.

  • Выберите строки, содержащие определенные значения из кадра данных pandas
  • Создание нулевого заполненного кадра данных панд
  • Pandas: конвертировать столбец в список
  • Как ускорить Pandas многоуровневую сумму данных?
  • влияет ли npartitions на результат dask.dataframe.head ()?
  • Фиксация datareader panda от финансов yahoo с Enthought Canopy
  • Pandas: SettingWithCopy Предупреждение:
  • Первые три значения max в столбце в python
  • Построение двух распределений в seaborn.jointplot
  • ValueError: numpy.dtype имеет неправильный размер, попробуйте перекомпилировать
  • Как импортировать файл gzip, превышающий размер RAM, в Pandas DataFrame? «Убить 9» Использовать HDF5?
  • Python - лучший язык программирования в мире.