У меня есть пять .csv с одинаковыми полями в том же порядке, которые необходимо обрабатывать как таковые:
- Получить список файлов
- Сделать каждый файл в фрейм данных
- Проверьте, имеет ли столбец комбинаций букв и цифр заданное c значение (разное для каждого файла), например: проверьте, находится ли число
PT333
в column1
для имени файла data1
:
column1 column2 column3
PT389 LA image.jpg
PT372 NY image2.jpg
- Если столбец имеет определенное значение c, выведите его значение и имя файла / переменной, которые я назначил этому файлу, и затем переименуйте этот фрейм данных в
output1
Я пытался сделать это, но не знаю, как сделать его l oop и сделать то же самое для каждого файла. На данный момент он возвращает номер, но я также хочу, чтобы он возвращал имя фрейма данных, и я также хочу, чтобы он равнялся l oop во всех файлах (от a до e), чтобы проверить все значения в numbers
list.
Вот что у меня есть:
import os
import glob
import pandas as pd
from glob import glob
from os.path import expanduser
home = expanduser("~")
os.chdir(home + f'/files/')
data = glob.glob('data*.csv')
data
# If you have tips on how to loop through these rather than
# have a line for each one, open to feedback
a = pd.read_csv(data[0], encoding='ISO-8859-1', error_bad_lines=False)
b = pd.read_csv(data[1], encoding='ISO-8859-1', error_bad_lines=False)
c = pd.read_csv(data[2], encoding='ISO-8859-1', error_bad_lines=False)
d = pd.read_csv(data[3], encoding='ISO-8859-1', error_bad_lines=False)
e = pd.read_csv(data[4], encoding='ISO-8859-1', error_bad_lines=False)
filenames = [a,b,c,d,e]
filelist= ['a','b','c','d','e']
# I am aware that this part is repetitive. Unsure how to fix this,
# I keep getting errors
# Any help appreciated
numbers = ['PT333', 'PT121', 'PT111', 'PT211', 'PT222']
def type():
for i in a.column1:
if i == numbers[0]:
print(numbers[0])
elif i == numbers[1]:
print(numbers[1])
elif i == numbers[2]:
print(numbers[2])
elif i == numbers[3]:
print(numbers[3])
elif i == numbers[4]:
print(numbers[4])
type()
Также рад принять любую конструктивную критику относительно того, как повторять меньше кода и делать вещи более гладкими. TIA