У меня есть почти 1000000 или даже больше файлов в пути. Моя конечная цель - извлечь некоторую информацию только из names
файлов. До сих пор я сохранил имена файла в списке.
какая информация в именах файлов?
поэтому формат имен файла выглядит примерно так:
09066271_142468576_1_Haha_-Haha-haha_2016-10-07_haha-false_haha2427.txt
все ха-ха - это другой текст, который не имеет значения.
Я хочу извлечь из названий имена 09066271
и 2016-10-07
и сохранить в кадре данных. первое число всегда 8 символов.
До сих пор я сохранил целые имена текстовых файлов в списке:
path = 'path to the saved txt files/fldr'
file_list = os.listdir(path)
во-первых, я хотел сохранить целые имена файлов txt в фрейме данных, а затем выполнить эти операции над ними. кажется, мне нужно сначала прочитать numpy, а затем изменить его, чтобы его можно было прочитать в пандах. однако я не сейчас перед тем, что будет изменением чисел.
df = pd.DataFrame(np.array(file_list).reshape(,))
Я был бы признателен, если бы вы могли дать мне свою идею и какой будет эффективный способ сделать это :)
Вы можете использовать os
для отображения всех файлов. Затем просто DataFrame
и используйте строковые методы, чтобы получить нужные вам части имен файлов.
import pandas as pd
import os
path = 'path to the saved txt files/fldr'
file_list = os.listdir(path)
df = pd.DataFrame(file_list, columns=['file_name'])
df['data'] = df.file_name.str[0:8]
df['date'] = df.file_name.str.extract('(\d{4}-\d{2}-\d{2})', expand=True)
file_name data date
0 09066271_142468576_1_Haha_-Haha-haha_2016-10-0... 09066271 2016-10-07
1 09014271_142468576_1_Haha_-Haha-haha_2013-02-1... 09014271 2013-02-18