给DF分组后按照包含关键字['工资', '离补', '奖金', '差异']的名排序print
时间: 2023-06-14 10:05:05 浏览: 51
以下是按照包含关键字['工资', '离补', '奖金', '差异']的名排序输出的代码:
```python
# 假设 DF 是一个包含数据的 DataFrame 对象
df_grouped = DF.groupby('名')
# 按照包含关键字['工资', '离补', '奖金', '差异']的名排序输出
for name, group in sorted(df_grouped, key=lambda x: any(keyword in x[0] for keyword in ['工资', '离补', '奖金', '差异'])):
if any(keyword in name for keyword in ['工资', '离补', '奖金', '差异']):
print(name)
print(group)
```
这段代码首先将 DF 按照名分组,然后使用 `sorted` 函数对分组后的结果进行排序,排序规则是根据名字是否包含关键字['工资', '离补', '奖金', '差异'],如果包含则排在前面,否则排在后面。最后遍历排序后的结果,对于包含关键字的名字,输出名字和对应的数据组。
相关问题
给DF分组后按照包含关键字['工资', '离补', '奖金', '差异']的表名排序print
假设你已经将数据框DF中的表名列存储在了一个名为'table_name'的列中,你可以使用以下代码来实现你的需求:
``` python
# 创建一个包含关键字的列表
keywords = ['工资', '离补', '奖金', '差异']
# 根据包含关键字的表名创建一个新的列
DF['key_present'] = DF['table_name'].apply(lambda x: any(keyword in x for keyword in keywords))
# 按照包含关键字的表名进行排序
DF = DF.sort_values(by='key_present', ascending=False)
# 删除新创建的列
DF.drop('key_present', axis=1, inplace=True)
# 打印排序后的数据框
print(DF)
```
这段代码会创建一个包含关键字的列表,然后使用apply函数将这些关键字应用于每个表名,创建一个新的包含True或False的列,表示该表名是否包含关键字。然后,我们按照这个新列进行降序排序,并删除新列,最后打印排序后的数据框。
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` 方法将索引重置为默认值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)