У меня есть df, как это,
df = pd.DataFrame({
"Name" : ["A","B","C","D","E","F","G"],
"part number" : ["1","3","2","1","5","1","2"],
"detail1" : ["A","C","B","B","E","E","E"],
"detail2" : ["one","three","two","two","five","five","five"]
})
df
Name part number detail1 detail2
A 1 A one
B 3 C three
C 2 B two
D 1 B two
E 5 E five
F 1 E five
G 2 E five
Я хотел бы сгруппировать по номеру детали и заполнить деталь1 и деталь2 значениями первой строки.
Мой ожидаемый результат,
Name part number detail1 detail2
A 1 A one
B 3 C three
C 2 B two
D 1 A one
E 5 E five
F 1 A one
G 2 B two
Я попробовал, df.groupby("part number")[["detail1","detail2"]].first()
, но не дал ожидаемого результата, пожалуйста, помогите.
1 ответ
Используйте groupby
на part number
и преобразуйте столбец detail1
, detail2
используя first
и назначьте эти преобразованные столбцы обратно в df
:
cols = ['detail1', 'detail2']
df[cols] = df.groupby('part number')[cols].transform('first')
Результат:
print(df)
Name part number detail1 detail2
0 A 1 A one
1 B 3 C three
2 C 2 B two
3 D 1 A one
4 E 5 E five
5 F 1 A one
6 G 2 B two
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.