Вам не обязательно использовать панд для достижения этой цели. Здесь я проведу вас через библиотеку CSV в Python. Описание ниже, перейдите к основанию для полного блока кода.
Допустим, у вас есть этот файл .csv с именем file1.csv
time,pressure,temperature,salinity,density
9/12/2014 0:00,176.31,4.5914,34.90789056,1028.46834
9/13/2014 0:20,176.31,4.5914,34.90789056,1028.46834
9/14/2014 0:21,176.31,4.5914,34.90789056,1028.46834
9/15/2014 2:00,176.31,4.5914,34.90789056,1028.46834
9/16/2014 1:20,176.31,4.5914,34.90789056,1028.46834
9/17/2014 0:29,176.31,4.5914,34.90789056,1028.46834
9/18/2014 1:00,176.31,4.5914,34.90789056,1028.46834
9/19/2014 3:20,176.31,4.5914,34.90789056,1028.46834
Он имеет разное время и такое,Иногда бывает меньше 30 минут, а иногда больше. Как мы можем разделить это на два отдельных выходных файла?
import csv
затем мы открываем наш файл file1.csv и читаем его, используя
with open('file1.csv') as csv_file:
read = csv.reader(csv_file,delimiter=',')
, поскольку там есть заголовки, я использовал переменную num_lines, чтобы записать, в каких строках мы находимся.
with open('file1.csv') as csv_file:
read = csv.reader(csv_file,delimiter=',')
num_lines = 0
Теперь мы хотим создать переменную Writer для записи в два новых файла CSV, я называю эти файлы out1.csv и out2.csv. 'W' означает запись.
with open('out1.csv',mode='w') as out_1,open('out2.csv',mode='w') as out_2:
out2_w = csv.writer(out_2,delimiter=',') #make writer,with delimiter ','
out1_w = csv.writer(out_1,delimiter=',')
Наконец, мы перебираем каждую строку и проверяем данные и время, чтобы увидеть, не меньше ли минут 30.
for row in read:
if num_lines == 0:
out1_w.writerow(row)
out2_w.writerow(row)
num_lines += 1
else:
time = row[0].split(':')
# time[1] is two digits,time[0][-1] is 0-9,time[0][-2] is ' ' or 1-9
if int(time[1]) < 30 and int(time[0][-2] + time[0][-1]) == 0:
out1_w.writerow(row)
else:
out2_w.writerow(row)
ВМЕСТЕ СЕЙЧАС:
import csv
with open('file1.csv') as csv_file:
read = csv.reader(csv_file,delimiter=',')
num_lines = 0
with open('out1.csv',mode='w') as out_1,open('out2.csv',mode='w') as out_2:
out2_w = csv.writer(out_2,delimiter=',')
out1_w = csv.writer(out_1,delimiter=',')
for row in read:
if num_lines == 0:
out1_w.writerow(row)
out2_w.writerow(row)
num_lines += 1
else:
# example: row[0] = '9/12/2014 0:00'
time = row[0].split(':')
# example: time = ['9/12/2014 0','00']
if int(time[1]) < 30 and int(time[0][-2] + time[0][-1]) == 0:
out1_w.writerow(row)
else:
out2_w.writerow(row)
ЭТОТ ПРОДУКТ
cat out1.csv
time,pressure,temperature,salinity,density
9/12/2014 0:00,176.31,4.5914,34.90789056,1028.46834
9/13/2014 0:20,176.31,4.5914,34.90789056,1028.46834
9/14/2014 0:21,176.31,4.5914,34.90789056,1028.46834
9/17/2014 0:29,176.31,4.5914,34.90789056,1028.46834
cat out2.csv
time,pressure,temperature,salinity,density
9/15/2014 2:00,176.31,4.5914,34.90789056,1028.46834
9/16/2014 1:20,176.31,4.5914,34.90789056,1028.46834
9/18/2014 1:00,176.31,4.5914,34.90789056,1028.46834
9/19/2014 3:20,176.31,4.5914,34.90789056,1028.46834
Теперь вы можете использовать pandas для pandas.read_csv и преобразовывать их в кадры данных. Но тебе должно быть хорошо отсюда.