У меня есть большой DataFrame около 2000 имен, которые имеют другую информацию и диаграммы, которые идут с их соответствующим именем. Я хотел бы создать отдельный файл (предпочтительно файл Excel, но csv работает) для каждого имени в DataFrame.
df = pd.DataFrame({'name': ['Ben','Steve','Mary','Ben','Steve','Mary'], 'value': [1,2,3,4,5,6]})
Этот вопрос похож на то, что я собираюсь сделать, за исключением того, что он не говорит вам, как вызвать функцию таким образом, чтобы сохранить csvs для каждого имени.
Запись нескольких CSV из функции .
Я пытался использовать эту функцию и создать для нее выход. Я тоже попробовал что-то вроде этого:
import os
g = df.groupby('name')
for n,g in df.groupby('name'):
f_name = os.path.join('Desktop', str(n), 'Report.csv')
g.to_csv(f_name)
def write_custom_csv(name):
filtered = df[df['name'] == name]
filtered.to_csv("Desktop\Report" + name + '.csv')
write_custom_csv(df)
Я также пытался определить выход:
outpath = "Desktop/Report"
def write_custom_csv(name):
filtered = df[df['name'] == name]
filtered.to_csv(outpath + name + '.csv')
write_custom_csv(df)
Ожидаемый вывод будет отдельным CSV-файлом для каждого из Бена, Стива, Мэри. У Бена будет 1 и 4, Стив 2 и 5 и Мэри 3 и 6, содержащиеся в файлах. Имя файла будет иметь свое имя, например, BenReport.csv.
Вывод не файл Excel и это сообщение об ошибке.
TypeError: Не удалось сравнить ['Desktop / Report'] со значениями блока