Создайте цикл for для извлечения определенной строки из фрейма данных pd

#pandas #dataframe #for-loop

Вопрос:

У меня есть фрейм данных с 14 цветами и 169882 строками. Заголовком столбцов фрейма данных являются

 Columns: [Station, day, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Z]
 

В столбце «Станция» всего 58 станций с именами от 1 до 58, однако они случайным образом распределены по фрейму данных.

Я пишу приведенный ниже код, чтобы извлечь строку из набора данных для определенного имени станции ( например, станция 1 в приведенном ниже коде) и сохранить в файл excel с соответствующим именем станции:

 grouped = df.groupby(df.Station)
S1= grouped.get_group(1)
S1.to_excel("1.xlsx") 
 

как я могу создать цикл for для чтения столбца «Станция», извлечения строк, относящихся к станциям с 1 по 58, и последующего сохранения выходных данных каждой станции в файл excel? проще говоря, как поместить верхний код в цикл for, чтобы выполнить задачу для всех 58 станций?

Ответ №1:

Этого можно достичь за 2 шага, получить уникальный список станций, а затем выполнить цикл по станции и применить фильтр к кадру данных

 Station = df['Station'].unique().tolist()

for s in Station:
    file = s   '.csv'
    df1 = df[df.Station == str(s)]
    df1.to_csv(file, index=False)