Я столкнулся с проблемой, когда мне нужно загрузить огромный CSV-файл, разбить его на несколько файлов на основе уникальных значений в столбцах и вывести файлы на несколько CSV-файлов с заранее заданным шаблоном имен.
Пример оригинального CSV приведен ниже.
date place type product value zone
09/10/16 NY Zo shirt 19 1
09/10/16 NY Mo jeans 18 2
09/10/16 CA Zo trouser 13 3
09/10/16 CA Co tie 17 4
09/10/16 WA Wo bat 11 1
09/10/16 FL Zo ball 12 2
09/10/16 NC Mo belt 13 3
09/10/16 WA Zo buckle 15 4
09/10/16 WA Co glass 16 1
09/10/16 FL Zo cup 19 2
Мне нужно разбить этот массивный кадр данных панд на несколько кадров данных панд на основе места, типа и зоны, а выходные кадры данных должны быть преобразованы в несколько файлов CSV с соглашением об именах place_type_product_zone.csv.
Код, который я получил до сих пор, как показано ниже.
def list_of_dataframes(df, col_list):
df_list = [df]
name_list = []
for _, i in enumerate(col_list):
df_list, names = _split_dataframes(df_list, i)
file_name = zip(name_list, df)
_ = dict(zip(names, df))
for k, v in _:
v.to_csv("{0}.csv".format(k))
Print("CSV files created")
return df, file_name
def _split_dataframes(df_list, col):
names = []
dfs = []
for df in df_list:
for c in df[col].unique():
dfs.append(df.loc[df[col] == c])
names.append(c)
return dfs, names
list_of_dataframes(df,['place','type','zone']
Он выводит CSV-файлы с заголовком 1.csv, 2.csv и т. Д. Как создать цикл в функции, чтобы получить соглашение об именах, например NY_zo_shirt_1.csv, CA_Zo_trouser_3.csv и т. Д., Если я должен создать словарь, в котором он хранит все ключи?
Заранее спасибо.