Получение неправильного порядка файлов с использованием цикла при ссылке на файл CSV по заказу, который мне нуженPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Получение неправильного порядка файлов с использованием цикла при ссылке на файл CSV по заказу, который мне нужен

Сообщение Anonymous »

I have a CSV file that reads like this:



Week
File Name
Week
File Name
< /tr>
< /thead>


1 < /td>
results_tdr_periods_4_1 < /td>
1 < /td>
results_tdr_periods_8_1 < /td>
results_tdr_periods_8_1 < /td>
results_tdr_periods_8_1 < /td>
results_tdr_periods_8_1 < /td>
results_tdr_periods_8_1 < /td>
/>
4 < /td>
results_tdr_periods_12_1 < /td>
4 < /td>
results_tdr_periods_16_1 < /td>
< /tr>




/> Results_tdr_periods_20_1 < /td>
8 < /td>
results_tdr_periods_24_1 < /td>
< /tr>

/> Results_tdr_periods_32_1 < /td>
12 < /td>
results_tdr_periods_28_1 < /td>
< /tr>

16 < /td> /> Results_tdr_periods_36_1 < /td>
16 < /td>
results_tdr_periods_40_1 < /td>
< /tr>

20 < /td>
Results_tdr_periods_48_1 < /td>
20 < /td>
results_tdr_periods_44_1 < /td>
< /tr>

24 < /td>
Results_tdr_periods_52_1
24
results_tdr_periods_56_1



и так и так и так и так. /> У меня есть связанные файлы данных в папке. Путь папки проходит все тесты -> results_tdr_periods_ [ded_number] _1 -> [файл, который мне нужен]. Я хочу сравнить неделю 1 против 1 -й недели, неделя 4 против 4 -й недели и т. Д. (Я использую Google Colab, поэтому мой код такой.) < /P>
!pip install patool
import patoolib
import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)
import pandas as pd
import os
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
import itertools

patoolib.extract_archive("All Tests.zip",outdir="/content")
#I have my All Tests folder in a zip in order upload it to colab

cvar_list2 = []
subtraction = []
list1 = np.arange(14)
label = []
xticks_label = []

file_list = pd.read_csv("[my csv file above]")
#I have my own csv file, but i'm just labeling it like this to show I'm using the CSV data from above

def get_costdata(dataframe1,dataframe2,clist1,clist2,row_name):
cvar1 = dataframe1.loc[dataframe1['Costs'] == row_name]

cvar1_z1 = f'{float(cvar1["Zone1"]):.3f}'
cvar1_z2 = f'{float(cvar1["Zone2"]):.3f}'
cvar1_z3 = f'{float(cvar1["Zone3"]):.3f}'

clist1.append(float(cvar1_z1))
clist1.append(float(cvar1_z2))
clist1.append(float(cvar1_z3))
# print(clist1)

#second round info
cvar2 = dataframe2.loc[dataframe2['Costs'] == row_name]

cvar2_z1 = f'{float(cvar2["Zone1"]):.3f}'
cvar2_z2 = f'{float(cvar2["Zone2"]):.3f}'
cvar2_z3 = f'{float(cvar2["Zone3"]):.3f}'

clist2.append(float(cvar2_z1))
clist2.append(float(cvar2_z2))
clist2.append(float(cvar2_z3))
# print(clist2)

rootdir = "/content/All Tests"

for subdir, dirs, files in os.walk(rootdir):
last_folder = os.path.basename(subdir)
for file in files:
if file != "costs.csv":
continue # Skip irrelevant files
for idx, value in enumerate(file_list["File Name"]):
if last_folder == file_list["File Name"][idx]:
#my main issue is here
#trying to do 'if the folder is equivalent to the index's folder in the column "file name", then use the costs.csv file from that folder
print(last_folder)
new_var1 = pd.read_csv(os.path.join(subdir, file))
if last_folder == file_list["File Name.1"][idx]:
#same thing as above but with the second column of file names instead
print(last_folder)
new_var2 = pd.read_csv(os.path.join(subdir, file))

# Only run if new_cvar1 is already defined
if 'new_var1' in locals():
get_costdata(new_var1, new_var2, cvar_list1, cvar_list2, "cVar")
label.append("Week: " + str(file_list["Week"][idx]))
else:
print(f"Skipping idx {idx}: new_cvar1 not found for {last_folder}")
< /code>
Однако, когда я запускаю свой код, используя Print (last_folder), чтобы увидеть, какой файл данных папки (COST.CSV) используется, он делает их полностью вне порядка. Я перезапустил свое время выполнения, чтобы дважды проверить все, и каждый раз это давал мне другой порядок последних. Это то, что у меня есть до сих пор:
results_tdr_periods_16_1
results_tdr_periods_52_1
results_tdr_periods_108_1
results_tdr_periods_112_1
results_tdr_periods_108_1
/> results_tdr_periods_44_1 < /p>
results_tdr_periods_32_1 < /p>
results_tdr_periods_56_1 < /p>
results_tdr_periods_84_1 < /p>
/> results_tdr_periods_20_1 < /p>
results_tdr_periods_68_1 < /p>
results_tdr_periods_88_1 < /p>
results_tdr_periods_40_1 < /p>
/> results_tdr_periods_24_1 < /p>
results_tdr_periods_104_1 < /p>
results_tdr_periods_72_1 < /p>
results_tdr_periods_12_1 < /p>
/> results_tdr_periods_28_1 < /p>
results_tdr_periods_80_1 < /p>
results_tdr_periods_64_1 < /p>
results_tdr_periods_8_1 < /p>
/> results_tdr_periods_76_1 < /p>
results_tdr_periods_100_1 < /p>
results_tdr_periods_48_1 < /p>
results_tdr_periods_60_1 < /p>
/> results_tdr_periods_36_1 < /p>
results_tdr_periods_96_1 < /p>
results_tdr_periods_92_1 < /p>
Результаты_tdr_periods_4_1 < /p>
unt a't a table speters, что не может быть складыванием, которые не могут быть складываются, что не так, как это может быть. использоваться и не в порядке. Я не знаю, как заставить их пойти в порядке. Я мог бы использовать функцию печати неправильно, но я также дважды проверил данные, которые набираются, и это не правильные данные. Я чувствую, что делаю что -то не так с порядком операторов IF или отступа, но я не могу понять, что это такое и как это исправить.

Подробнее здесь: https://stackoverflow.com/questions/796 ... -file-of-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»