import pandas as pd
df = pd.DataFrame([[1,2,3],[1,5,9],[2,1,5],[9,2,8]], index = [1,2,3], columns = ['A','B','C', 'D'])
Предположим, у меня есть dataframe, например df. Я хочу сравнить все строки в df для , если df ['A']> df ['B'] и df ['B'] < df ['C'] и df ['B']> df [' D '], , тогда если true df [' E '] =' yes 'или' no 'для false. спасибо большоепроверка столбцов данных (ряд за строкой) для нескольких условий, если
Спасибо @ Вайшали за ответ. Для моего случая мне нужно сделать это с помощью оператора if (для большего анализа). Когда я пробовал это --- импортировать pandas как pd df = pd.DataFrame ({'A': [1,2,10], 'B': [1,5,5], 'C': [2 , 1,7], 'D': [9,2,4]}) if (df ['A']> df ['B']) & (df ['B'] df [' D ']): df [' E '] =' yes '--- это дает мне ValueError: значение истинности серии неоднозначно. Используйте a.empty, a.bool(), a.item(), a.any() или a.all(). Какие-либо предложения? –
Решение является условным выражением без использования if. Ошибка значения, которую вы получаете, состоит в том, что df ['E'] - это серия pandas, и вы не можете присвоить значение таким сериям – Vaishali
Если вам нужно явно использовать инструкцию if, то это решение, хотя я бы не рекомендовал его: E = [] для i в диапазоне (len (df)): if ((df ['A'] [i]> df ['B'] [i]) & (df ['B'] [i ] df ['D'] [i])): E.append ('Да') else: E .append ('Нет') –
Vaishali