#python
Вопрос:
У меня есть разные столбцы в csv-файле excel, и я хочу проверить наличие условия в разных столбцах, и когда условие будет выполнено, добавить найденное значение в мой новый список.
Но это не работает.
Это мой код:
# importing module from pandas import * # reading CSV file data = read_csv("test.csv") # converting column data to list ext1 = data['ext1'].tolist() int1 = data['int1'].tolist() ext2 = data['ext2'].tolist() ext = [] for i in ext1 or ext2: if i gt;= "2022-03-01": ext.append(i) else: pass print(*ext, sep="n")
Проблема в том, что:
for i in ext1 or ext2:
Я думаю or
, что это проблематично.
Это мой csv-файл:
ext1,int1,ext2 2023-01-20,2022-01-20,2022-01-21 2024-01-21,2023-01-22,2024-12-22 2021-01-22,2022-01-22,2022-01-23
Список должен быть напечатан:
2023-01-20 2024-01-21 2024-12-22
это всего лишь печать:
2023-01-20 2024-01-21
Ответ №1:
Я не могу сказать, что полностью понял проблему, но попробуйте
for i in ext1 ext2:
ext1 or ext2
просто означает «используйте ext1
, если не пусто, в противном ext2
случае «.
Также избавьтесь от else: pass
него, так как он является избыточным.
В качестве примечания, весь ваш цикл может быть переписан в одну строку как понимание списка:
ext = [i for i in ext1 ext2 if i gt;= "2022-03-01"]
Комментарии:
1. ваше предложение сработало, чем я должен заменить другое:передать? Спасибо!
2. Ничего, тебе не обязательно иметь
else:
оговорку.