Мне удалось сгенерировать CSV-файл моих данных из указанных изображений из каждого поля и сгруппировать их по хорошо.
Я написал простой скрипт для объединения всех 4 CSV (я отобразил 4 поля на лунку) в каждой лунке и сгенерировал гистограмму значений одного столбца из объединенного CSV, и это работает!
Однако это работает только в том случае, если я указываю путь каждый раз, поэтому мне придется запускать его 96 раз и вручную менять путь.
Код: Выделить всё
#combine csvs in one well
import pandas as pd
import glob
import os
import matplotlib.pyplot as plt
# Get a list of all CSV files in any given directory
path = "/path/to/well/folder"
csv_files = glob.glob(os.path.join(path, "*.csv"))
# Create an empty list to store dataframes
df_list = []
# Read each CSV file and append it to the list
for file in csv_files:
df = pd.read_csv(file)
df_list.append(df)
# Concatenate all dataframes into one
combined_df = pd.concat(df_list, ignore_index=True)
# Save the combined dataframe to a new CSV file in the same place as
combined_df.to_csv('path/to/well/folder/combined.csv', index=False)
#export descriptive stats
fig=combined_df['Mean'].hist()
plt.savefig("path/to/well/folder/fig.png")
Вот что у меня есть на данный момент. Мы будем очень признательны за любую помощь.
Важно отметить, что конечная цель состоит в том, чтобы каждый из 4 CSV-файлов в каждой подпапке стал объединенным CSV-файлом в КАЖДОЙ подпапке, а НЕ одним большим объединенным CSV-файлом, представляющим данные. из ВСЕХ ПАПОК вместе взятых. Вот почему я не смог найти в Интернете пример, соответствующий тому, что я пытался сделать.
Код: Выделить всё
import pandas as pd
import glob
import os
import matplotlib.pyplot as plt
rootdir = "path/to/folder/of/well/folders"
subfolderlist = os.listdir(rootdir)
print(subfolderlist)
for i in subfolderlist:
if not i.startswith('.'):
print(os.listdir(os.path.join(rootdir,i)))
csv_files = glob.glob(i, "*.csv")
df_list = []
for file in csv_files:
df = pd.read_csv(file)
df_list.append(df)
combined_df = pd.concat(df_list, ignore_index=True)
combined_df.to_csv(i + '/combined.csv', index=False)
fig=combined_df['Mean'].hist()
plt.savefig(i + '/fig.png')
Код: Выделить всё
csv_files = glob.glob(i, "*.csv")
TypeError: glob() takes 1 positional argument but 2 were given
Поможете?
Подробнее здесь: https://stackoverflow.com/questions/792 ... lders-in-a