df列按照包含关键字['工资', '奖金', '离补', '.']的先后顺序排序
时间: 2023-09-27 17:11:30 浏览: 58
可以使用str.contains()方法来检查df中每个元素是否包含指定的关键字,然后使用argsort()方法对结果进行排序。下面是示例代码:
``` python
import pandas as pd
# 创建示例数据
data = {'姓名': ['张三', '李四', '王五'],
'工资': ['2000', '3000', '2500'],
'奖金': ['1000', '2000', '1500'],
'离补': ['500', '800', '600'],
'其他': ['无', '无', '无']}
df = pd.DataFrame(data)
# 按照包含关键字的先后顺序排序
keywords = ['工资', '奖金', '离补', '.']
order = pd.Series(df.columns).apply(lambda x: [i for i, k in enumerate(keywords) if k in x][0])
df = df.iloc[:, order.argsort()]
print(df)
```
输出结果:
```
工资 奖金 离补 其他 姓名
0 2000 1000 500 无 张三
1 3000 2000 800 无 李四
2 2500 1500 600 无 王五
```
可以看到,df的列已按照包含关键字的先后顺序进行了排序。其中,第一列是包含关键字'工资'的列,第二列是包含关键字'奖金'的列,第三列是包含关键字'离补'的列,最后一列是不包含任何关键字的列。
阅读全文