Я новичок в изучении Python и имею широкий файл данных, который я хотел бы агрегировать по разным переменным и создать новый файл для использования с помощью панели панели. Я могу использовать GroupBy (), чтобы получить агрегацию, которую я хочу для одного столбца за раз, а затем добавить результаты в файл CSV. Тем не менее, мне интересно, есть ли более эффективный способ сделать это с помощью какого -либо цикла. Br />data = {'ID': [105, 106, 107, 108, 109, 110, 111, 112],
'Name': ['Bill', 'Jane', 'Mary', 'Rich', 'Tomas', 'Kiki', 'Martin', 'Larry'],
'Cohort': ['Cohort A', 'Cohort A', 'Cohort A', 'Cohort A', 'Cohort B', 'Cohort B', 'Cohort B', 'Cohort B'],
'Program Size': ['small', 'large', 'medium', 'medium', 'large', 'small', 'large', 'medium'],
'Rating': ['excellent', 'good', 'needs improvement', 'needs improvement', 'good', 'excellent', 'good', 'excellent']}
df = pd.DataFrame(data)
< /code>
выглядит следующим образом:
идентификационно -имени Когорта Рейтинг размер размера
0 105 Счета Когорта Маленькая превосходная
1 106 Jane Cohort Большая хорошая
2 107 Mary Cohort Средняя среда нуждается в улучшении
3 108 Rich Cohort. Улучшение среды. Маленький превосходный
6 111 Martin Cohort B Большой хороший хороший
7 112 Larry Cohort B Средний отличный < /p>
Я всегда хочу группировать с помощью когортной колонны, а также один из другого столбцы и получают количество для каждой комбинации. В моем новом файле данных у меня будет столбец когорты, столбец «переменная» (который будет другим столбцом в группе), параметры представляют «Описание», а затем частота. Вот как будет выглядеть мой желаемый результат: < /p>
desired = {'Cohort': ['Cohort A', 'Cohort A', 'Cohort A', 'Cohort B', 'Cohort B', 'Cohort B', 'Cohort A', 'Cohort A', 'Cohort A', 'Cohort B', 'Cohort B'],
'Variable': ['size', 'size', 'size', 'size', 'size', 'size', 'rating', 'rating', 'rating', 'rating', 'rating'],
'Description': ['small', 'medium', 'large', 'small', 'medium', 'large', 'excellent', 'good', 'needs improvement', 'excellent', 'good'],
'Frequency': [1, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2]}
desired_df = pd.DataFrame(desired)
< /code>
Когортная переменная Описание частота
0 Cohort A Size Small 1
1 Cohort A Size Medium 2
2 Cohort a Размер большой 1
3 Когорта B Размер малый 1
4 Cohort Bize Medium 1
5 Cohort B Размер B Большой 2
6 Cohort A Рейтинг отличный 1
7 Cohort A Рейтинг хороший 1
8 Cohort A Рейтинг нуждается в улучшении 2
9 Cohort B Рейтинг B Превосходное 2
10 Cohort B Рейтинг Good 2 < /p>
Я смог написать Цикл для группы от Cohort и других моих столбцов и получения частот, но я не уверен, как собрать все это вместе (добавить DataFrames?), Чтобы добраться до моего желаемого результата. Я ценю любое руководство на следующих шагах! (Вот то, что я написал, чтобы пройти через свои столбцы и получить частоты: < /p>
cols = ['Program Size', 'Rating']
for i in cols:
grouped_df = df.groupby(['Cohort', (i)], as_index=False).agg(
frequency=('ID', 'count')
)
print(f"Grouped by Cohort and {i}:\n{grouped_df}\n")
Подробнее здесь: https://stackoverflow.com/questions/794 ... tes-of-col
Как мне создать новый флажок данных, который включает в себя столбцы, которые являются агрегатами столбцов в оригинале? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Spring: «Файл класса имеет неверную версию 61.0, должна быть 55.0» [так в оригинале]
Anonymous » » в форуме JAVA - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как суммировать только положительные значения с условными агрегатами Django?
Anonymous » » в форуме Python - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-