#python #pandas
Вопрос:
Это может показаться очень простым вопросом, но у меня возникли трудности с добавлением оператора if и для панд python. До сих пор это мой код:
import pandas as pd
df = pd.DataFrame({
'C1': ["True","False","False","True"],
'C2': ["True","True","False","True"],
})
print(df)
Я ищу, чтобы создать новый столбец с именем C3 в моем фрейме данных. В этом столбце будет указано «True», если соответствующие значения в той же строке для столбцов C1 и C2 также являются «True»
. И если значения в одной и той же строке оба не являются истинными для столбцов C1 и C2, то значение в C3 будет означать «False».
Спасибо за помощь.
Комментарии:
1. Что вы пробовали до сих пор, основываясь на своих собственных исследованиях, и что пошло не так в ваших попытках?
Ответ №1:
Вы можете попробовать это:
df['C3'] = df['C1'].eq('True') amp; df['C2'].eq('True')
C1 C2 C3
0 True True True
1 False True False
2 False False False
3 True True True
Ответ №2:
Преобразуйте строку в логическое значение для удобства работы:
df['C3'] = df.apply(pd.eval).all(axis=1).astype(str)
Или,
df['C3'] = df.replace({'True': True, 'False': False}).all(axis=1).astype(str)
Наконец, преобразуйте обратно в строку для получения желаемых результатов.
Результат:
print(df)
C1 C2 C3
0 True True True
1 False True False
2 False False False
3 True True True
Ответ №3:
def apply_func(df):
val1 = True if df.C1 == "True" else False
val2 = True if df.C2 == "True" else False
return val1 and val2
df["C3"] = df.apply(apply_func, axis=1)
Вы можете использовать функцию для обработки значений. Мне пришлось преобразовать строки в логические значения, прежде чем использовать их.
Ответ №4:
import pandas as pd
df = pd.DataFrame({
'C1': ["True","False","False","True"],
'C2': ["True","True","False","True"],
})
df['C3'] = df.apply(lambda row: row['C2'] == "True" and row['C1'] == "True", axis = 1)
print(df)
Ответ №5:
А как насчет панд?Серия.где?.
mask = df['C1'].eq('True') amp; df['C2'].eq('True')
df['C3'] = df['C1'].where(cond=mask, other='False')
Выход:
C1 C2 C3
0 True True True
1 False True False
2 False False False
3 True True True