индексирование данных в пандах внутри цикла - PullRequest
0 голосов
/ 29 октября 2018

Я уверен, что это где-то спрашивали, но я не могу найти это .. поэтому извинения.

У меня есть датафрейм: df, и я хочу сказать для столбца A и строк от 0 до 10, дать значения x

но мне нужно сделать это в цикле.

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

colname='A'
df[colname][:10]=x

Это работает, но оно вызывает эту красную коробку 100 раз, говоря, что это не очень хороший способ ...

См. Предостережения в документации: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy C: \ Users \ FSC05 \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ ipykernel_launcher.py: 18: SettingWithCopyWarning: Значение пытается быть установлено для копии среза из DataFrame

Заранее спасибо за помощь.

Fred

1 Ответ

0 голосов
/ 29 октября 2018

С Pandas вы должны обратить внимание на избегать петель уровня Python. Здесь вы можете использовать iloc для целочисленной позиционной индексации:

x = df.iloc[:10, df.columns.get_loc('A')]

iloc можно использовать для установки и получения значений:

x = 5
df.iloc[:10, df.columns.get_loc('A')] = x

Предполагается, что, как и обычно, метки столбцов уникальны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...