У меня есть набор данных, отсортированный в следующем порядке:
столбец 1
столбец 2
столбец 3
a
1
r
а
1
с
а
2
t
a
2u
a
3
v
a
3
w
b
4
x
b
4
y
b
5z
b
5
q
b
6
w
b
6
e
Я хочу, чтобы оно было отсортировано следующим образом порядок:
столбец1
столбец2
столбец3
a
1
r
a
2t
a
3
v
а
1
с
a
2
u
а
3
w
b
4x
b
5
z
b
6
w
b
4
y
b
5
q
b
6e
Мне нужен col2 чтобы быть повторяющимся, как, например, для значений col1 'a', это должно быть 1,2,3,4, а затем снова 1,2,3,4 вместо 1,1,2,2,3,3,4,4.
Я использовал следующий код, но это не так. работает:
import pandas as pd
# Creating the DataFrame
data = {
'col1': ['a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b'],
'col2': [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6],
'col3': ['r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'q', 'w', 'e']
}
df = pd.DataFrame(data)
# Sort by col1, then reorder col2 within each group
df_sorted = df.sort_values(by=['col1', 'col2']).reset_index(drop=True)
df_sorted = df_sorted.groupby('col1', group_keys=False).apply(lambda x: x.sort_values('col2'))
# Display the sorted dataframe
print(df_sorted)
Подробнее здесь: https://stackoverflow.com/questions/791 ... er-groupby
Как сортировать фрейм данных Python Pandas в повторяющемся порядке после группировки? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение