#python #pandas
#python #pandas
Вопрос:
Я пытаюсь создать категории на основе нескольких столбцов в pandas, но для запуска требуется вечность, поэтому я не уверен, что это правильно. Я ушел на 30 минут и все еще работал, поэтому остановил его. Я пытаюсь создать новый столбец на основе нескольких других столбцов (в моих фактических данных это около 15 столбцов). Однако, когда я пытаюсь использовать меньший набор данных, это происходит очень быстро. Есть предложения?
other_cols = ['col1', 'col2', 'col3', 'col4', 'col5']
def labels(row):
if ((row['col 6'] > 1) amp; (row[other_cols] < 1)).all():
return 'Yes'
if ((row['col 6'] >1) amp; (row['col 7'] >1) amp; (row[other_cols] <1)).all():
return 'Maybe'
if ((row['col 6'] <1) amp; (row['col 7']>1) amp; (row[other_cols] <1)).all():
return 'no'
df['category'] = df.apply(lambda row: labels(row), axis=1)
Ответ №1:
Возможно, вы можете попробовать это :
ther_cols = ['col1', 'col2', 'col3', 'col4', 'col5']
def labels(row):
elif ((row['col 6'] > 1) amp; (row[other_cols] < 1)).all():
row['category'] = 'Yes'
elif ((row['col 6'] >1) amp; (row['col 7'] >1) amp; (row[other_cols] <1)).all():
row['category'] = 'Maybe'
elif ((row['col 6'] <1) amp; (row['col 7']>1) amp; (row[other_cols] <1)).all():
row['category'] = 'no'
else:
row['category'] = ''
df = df.apply(labels, axis=1)
Каков размер вашего набора данных?
Извините, я не могу комментировать, я все еще новичок здесь
Комментарии:
1. Почему это было бы быстрее? Просто любопытно узнать, поскольку я сам новичок. Данные содержат около 15 000 строк и 20 столбцов