给分组后的df表名排序
时间: 2023-06-12 17:07:45 浏览: 43
你可以使用 pandas 库的 `sort_values()` 方法对分组后的 DataFrame 进行排序。下面是一个示例代码:
```python
import pandas as pd
# 假设你已经按照某一列分组后得到了一个名为 grouped_df 的 DataFrame
# 对分组后的 DataFrame 进行排序,以 group_name 和 table_name 两列作为排序关键字
sorted_df = grouped_df.sort_values(by=['group_name', 'table_name'])
# 输出排序后的 DataFrame
print(sorted_df)
```
在这个示例代码中,我们假设你已经按照某一列分组后得到了一个名为 `grouped_df` 的 DataFrame。然后,我们使用 `sort_values()` 方法对 `grouped_df` 进行排序,其中 `by=['group_name', 'table_name']` 表示我们要以 `group_name` 和 `table_name` 两列作为排序关键字。最后,我们将排序后的结果存储到一个名为 `sorted_df` 的 DataFrame 中,并打印输出。
相关问题
给DF分组后按照包含关键字['工资', '离补', '奖金', '差异']的表名排序print
假设DF是一个包含表名的DataFrame,你可以按照以下步骤进行分组、匹配关键字、排序和打印:
```python
# 导入必要的库
import pandas as pd
# 假设DF是一个包含表名的DataFrame
# 对表名进行分组
grouped = DF.groupby('表名')
# 匹配关键字,筛选出包含关键字的表名
keyword = ['工资', '离补', '奖金', '差异']
matched = []
for name, group in grouped:
for k in keyword:
if k in name:
matched.append(name)
break
# 对匹配到的表名进行排序
matched = sorted(matched)
# 打印结果
for name in matched:
print(name)
```
这段代码首先对表名进行分组,然后在每个组中匹配关键字,将匹配到的表名存储在一个列表中,并对列表进行排序,最后打印结果。
python有没有df分组后 group sort 函数,可以根据group中的表名中包含的关键字(工资、奖金、离补和差异)的固定顺序把每个df排序
是的,你可以使用 Pandas 库中的 groupby 和 apply 方法来实现这个功能。首先,使用 groupby 将 DataFrame 按照指定的列进行分组,然后使用 apply 将每个分组中的 DataFrame 进行排序。下面是一个示例代码:
```python
import pandas as pd
# 创建一个示例 DataFrame
data = {'name': ['Tom', 'Jerry', 'Bob', 'Alice', 'Emma', 'John'],
'salary': [5000, 6000, 8000, 7000, 9000, 10000],
'bonus': [2000, 1500, 3000, 2500, 4000, 5000],
'allowance': [1000, 800, 1200, 1100, 1300, 1500],
'difference': [500, 400, 600, 550, 650, 700]}
df = pd.DataFrame(data)
# 定义排序规则
order = ['salary', 'bonus', 'allowance', 'difference']
# 定义排序函数
def sort_group(group):
return group.sort_values(by=order)
# 按照关键字分组并排序
result = df.groupby(df.columns.str.contains('|'.join(order)), axis=1) \
.apply(sort_group).reset_index(drop=True)
print(result)
```
在这个示例代码中,我们首先定义了要排序的关键字顺序(即 `order` 列表)。然后,使用 Pandas 的 `groupby` 方法将 DataFrame 按照包含关键字的列进行分组。`df.columns.str.contains('|'.join(order))` 用于判断每列是否包含关键字,并返回一个布尔型的 DataFrame。最后,使用 `apply` 方法将每个分组中的 DataFrame 进行排序,并使用 `reset_index` 方法将索引重置为默认值。