#python #python-3.x #pandas
#python #python-3.x #pandas
Вопрос:
В простом приложении, которое я создаю, пользователь выбирает папку, которая хранится в виде строки. У меня есть df, где в одном из столбцов указаны имена файлов, которые представляют собой полные пути к сохраненным файлам, а также некоторый текст, который мне не нужен. Я хочу выбирать только строки в df, которые имеют тот же путь, что и выбранная папка
df выглядит следующим образом
File Name
1 D:ThisisafilepathIedited08SMP
2 D:ThisisafilepathIedited09SMP
3 D:ThisisafilepathIedited010SMP
4 "Action on Failure"
5 Total Dil.
6 Max. Daily Dose
7 File Name
8 D:ThisisafilepathIedited11SMP
....
Итак, если foldername=r"D:ThisisafilepathIedited"
Я только хочу выбрать строки, в которых имя файла содержит имя папки. Вывод должен быть таким.
File Name
1 D:ThisisafilepathIedited08SMP
2 D:ThisisafilepathIedited09SMP
3 D:ThisisafilepathIedited010SMP
8 D:ThisisafilepathIedited11SMP
....
Однако, когда я пытаюсь
df=df[df["File Name"].str.contains(foldername)]
Я получаю ошибку: error: bad escape I
И по какой-то причине, когда я пытаюсь сравнить только часть foldername, он возвращает false, даже если есть строки, которые его содержат
df["File Name"].str.contains(foldername[:10])
Out[43]:
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 False
8 False
9 False
11 False
23 False
35 False
59 False
60 False
61 False
62 False
63 False
64 False
65 False
66 False
67 False
68 False
70 False
81 False
92 False
Name: File Name, dtype: bool
if foldername[:10] in df.iloc[0,1]:
print("y")
y
Комментарии:
1.
` is an escape character. You should use raw string
имя_файла=r»D:ThisisafilepathIedited «`2. @QuangHoang Я делаю, и я получаю ту же ошибку. Но я исправлю опечатку в сообщении, спасибо
Ответ №1:
Я думаю, вам нужно добавить «регулярное выражение = False»
df=df[df["File Name"].str.contains(foldername, regex=False)]