Сгруппируйте по столбцам в Dataframe и создайте отдельный CSV для всей группы

1

У меня огромный CSV файл размером 100 КБ, который содержит записи. Пример, как показано ниже

city         employee

california   jhon
delhi        kumar
us           raj
california   brakers
us           kroja
... 

Поэтому я хочу сгруппировать их и сохранить в отдельном файле CSV

Мой результат для вышеприведенного примера будет

city         employee

california   jhon
california   brakers
delhi        kumar
us           raj
us           kroja

Нужно ли мне сортировать/группировать по городу в кадре данных, а затем иметь цикл for и перебирать весь кадр данных?

И это мой код

New_data=pd.read_csv("citynames.csv",encoding = "ISO-8859-1") 
Aftergrouping_data=New_data.groupby("city")
#print(Aftergrouping_data.groups)

for name,group in Aftergrouping_data:
    print(name)
    group.to_csv("aftergrouping.csv".format(name), index=False)

Проблема состоит в том, что он переопределяет значения в цикле for и отображает последние данные группы. но я хочу, чтобы все сгруппированные данные были в файле.

Заранее спасибо

Теги:
pandas
python-3.x
pandas-groupby
group-by

1 ответ

0
Лучший ответ

Из вашего описания два аспекта кажутся ясными:

  1. Вы хотите сортировать данные, а не группировать данные. Вы можете сортировать данные без объекта groupby.
  2. Вы хотите экспортировать dataframe в один файл csv. Для этой задачи нет необходимости использовать итерацию.

Вы можете просто использовать sort_values за которым следует to_csv:

# read file
df = pd.read_csv('citynames.csv', encoding='ISO-8859-1')

# sort by 'city', ascending
df = df.sort_values('city')

# export to csv
df.to_csv('citynames_out.csv', index=False)
  • 0
    Так много, сэр за помощь. Еще один вопрос Aftergrouping_data=New_data.groupby("city") тогда я выполняю numpy поскольку Aftergrouping_data.agg(np.size) знает, что вопрос заключается в том, как сохранить результат в CSV-файле
  • 0
    @lavakumar, извините, я не знаю, зачем вам нужен groupby для задачи, описанной в этом вопросе, или почему вам нужно агрегировать по размеру. Я предлагаю вам задать отдельный вопрос для различных требований, четко показывая желаемый результат.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню