可以使用Python的pandas库来解决此问题。假设我们有一个包含以下数据的DataFrame对象df:
import pandas as pd
df = pd.DataFrame({'A': ['group1', 'group1', 'group2', 'group2', 'group2'],
'B': ['x', 'y', 'y', 'z', 'z']})
现在我们想要按照A列的值将B列中各个元素出现的次数进行分组并按照数量进行排序。这可以通过以下代码实现:
result = df.groupby('A')['B'].value_counts().reset_index(name='count')
这将返回一个新的DataFrame对象,其中包含根据每个组的A值分组后,每个B值出现的数量。我们还可以选择在分组后对结果进行排序:
result.sort_values(by=['A', 'count'], ascending=[True, False], inplace=True)
这将根据A列的升序和count列的降序对结果进行排序。
完整代码示例:
import pandas as pd
df = pd.DataFrame({'A': ['group1', 'group1', 'group2', 'group2', 'group2'],
'B': ['x', 'y', 'y', 'z', 'z']})
result = df.groupby('A')['B'].value_counts().reset_index(name='count')
result.sort_values(by=['A', 'count'], ascending=[True, False], inplace=True)
print(result)
输出结果为:
A B count
0 group1 y 1
1 group1 x 1
2 group2 z 2
3 group2 y 1
上一篇:按条件将日志写入文件的Nlog
下一篇:按条件将一个数组拆分成多个数组