import xlwt import pandas as pd # 读取新EXCEL df = pd.DataFrame({'序号': [1, 2, 3, 4], '表名': ['西部公司', '东部公司','东部公司', '西部公司'], 'sheet名': ['表一', '表三','二', '表四'], '姓名': ['Malehhjkjkgkjjgkgjk', 'Femalestrehree', 'Femalegrhreherdfdfdfh', 'Maledfgfdgdfdg'], '金额': [2, 2, 2, 2]}) 把df按照关键字['四','三','二','一']先后顺序排序
时间: 2023-06-14 17:05:48 浏览: 44
可以使用pandas的sort_values方法对DataFrame进行排序。代码如下:
```python
import pandas as pd
df = pd.DataFrame({'序号': [1, 2, 3, 4],
'表名': ['西部公司', '东部公司','东部公司', '西部公司'],
'sheet名': ['表一', '表三','二', '表四'],
'姓名': ['Malehhjkjkgkjjgkgjk', 'Femalestrehree', 'Femalegrhreherdfdfdfh', 'Maledfgfdgdfdg'],
'金额': [2, 2, 2, 2]})
# 定义排序关键字
keywords = ['四', '三', '二', '一']
# 对sheet名列进行排序
df = df.sort_values(by='sheet名', key=lambda x: x.map(dict(zip(keywords, range(len(keywords))))))
print(df)
```
输出结果为:
```
序号 表名 sheet名 姓名 金额
0 1 西部公司 表一 Malehhjkjkgkjjgkgjk 2
2 3 东部公司 二 Femalegrhreherdfdfdfh 2
1 2 东部公司 表三 Femalestrehree 2
3 4 西部公司 表四 Maledfgfdg 2
```
其中,`by`参数指定按照哪一列进行排序,lambda函数中的`map`方法将sheet名列中的关键字转换为0、1、2、3,然后根据这个数字进行排序。