Учитывая этот кадр данных:
df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
Я могу использовать groupby, чтобы показать размер группы комбинаций:
df.groupby(['A','B']).size()
A B
1 2 1
3 1
4 6 1
Как я могу объединить уникальные значения B в список, а также отобразить размер A, как это?
A B
1 2,3 2
4 6 1
2 ответа
Использование:
df['B'].astype(str).groupby(df['A']).agg([','.join,'size'])
Out[134]:
join size
A
1 2,3 2
4 6 1
Сгруппируйте только по A и используйте .agg
, указав словарь для каждого столбца.
df.groupby('A').agg({'B': list, 'A': 'size'}).rename(columns={'A': 'Size'})
B Size
A
1 [2, 3] 2
4 [6] 1
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.