Я продолжаю получать ошибку ChainedAssignmentError при добавлении условия в свой код. В этом базовом примере я проверяю, является ли столбец «один» буквой «e», и если да, то устанавливаю для столбца «Соответствие» значение 1.
Файл df обновляется правильно, я просто получаю предупреждение о будущем.
import pandas as pd
df = pd.DataFrame([list('ab0'),
list('ee0'),
list('ij0'),
list('ii0')],
columns=['one', 'two', 'Match'])
print(df)
df.loc[:,"Match"][df.loc[:,"one"] == "e"] = 1
print(df)
ВЫВОД
one two Match
0 a b 0
1 e e 0
2 i j 0
3 i i 0
FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
A typical example is when you are setting values in a column of a DataFrame, like:
df["col"][row_indexer] = value
Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`.
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/s ... sus-a-copy
one two Match
0 a b 0
1 e e 1
2 i j 0
3 i i 0
Подробнее здесь: https://stackoverflow.com/questions/798 ... -dataframe
ChainedAssignmentError при добавлении условия в кадр данных pandas ⇐ Python
Программы на Python
-
Anonymous
1768814926
Anonymous
Я продолжаю получать ошибку ChainedAssignmentError при добавлении условия в свой код. В этом базовом примере я проверяю, является ли столбец «один» буквой «e», и если да, то устанавливаю для столбца «Соответствие» значение 1.
Файл df обновляется правильно, я просто получаю предупреждение о будущем.
import pandas as pd
df = pd.DataFrame([list('ab0'),
list('ee0'),
list('ij0'),
list('ii0')],
columns=['one', 'two', 'Match'])
print(df)
df.loc[:,"Match"][df.loc[:,"one"] == "e"] = 1
print(df)
ВЫВОД
one two Match
0 a b 0
1 e e 0
2 i j 0
3 i i 0
FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
A typical example is when you are setting values in a column of a DataFrame, like:
df["col"][row_indexer] = value
Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`.
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
one two Match
0 a b 0
1 e e 1
2 i j 0
3 i i 0
Подробнее здесь: [url]https://stackoverflow.com/questions/79870853/chainedassignmenterror-when-adding-a-conditional-to-a-pandas-dataframe[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия