我有一个数据集,每个组中都有“未知”。我正在考虑将“未知”放在每组的末尾。 例如: 我有这样的代码:
import pandas as pd
clients1 = {'Name': ['A','B','Unknown','Y','Z','A','B','Unknown','Y','Z'],
'group': ['1','1','1','1','1','2','2','2','2','2']
}
df = pd.DataFrame(clients1, columns= ['Name', 'group'])
df
输出:
Name group
A 1
B 1
Unknown 1
Y 1
Z 1
A 2
B 2
Unknown 2
Y 2
Z 2
所需的输出应该是:
Name group
A 1
B 1
Y 1
Z 1
Unknown 1
A 2
B 2
Y 2
Z 2
Unknown 2
有人知道怎么做吗?
最佳答案
您可以按group
和name==Unknown
对数据进行排序,因此Unknown
标记为True
并放在底部:
df = (df.assign(unknown_name=df['Name'].eq('Unknown'))
.sort_values(['group','unknown_name'])
)
输出:
Name group unknown_name
0 A 1 False
1 B 1 False
3 Y 1 False
4 Z 1 False
2 Unknown 1 True
5 A 2 False
6 B 2 False
8 Y 2 False
9 Z 2 False
7 Unknown 2 True
关于python - 如何有条件地重新排列行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70309755/