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 13:05:55 浏览: 34
可以按照以下步骤进行排序:
1. 创建一个字典,将关键字与对应的数字值匹配:
```
key_dict = {'一': 1, '二': 2, '三': 3, '四': 4}
```
2. 将df中的'sheet名'列转换为数字值:
```
df['数字'] = df['sheet名'].apply(lambda x: key_dict[x])
```
3. 按照数字值排序,然后删除'数字'列:
```
df_sorted = df.sort_values('数字').drop('数字', axis=1)
```
完整代码如下:
```
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'序号': [1, 2, 3, 4],
'表名': ['西部公司', '东部公司','东部公司', '西部公司'],
'sheet名': ['表一', '表三','二', '表四'],
'姓名': ['Malehhjkjkgkjjgkgjk', 'Femalestrehree', 'Femalegrhreherdfdfdfh', 'Maledfgfdgdfdg'],
'金额': [2, 2, 2, 2]})
# 关键字匹配字典
key_dict = {'一': 1, '二': 2, '三': 3, '四': 4}
# sheet名转为数字
df['数字'] = df['sheet名'].apply(lambda x: key_dict[x])
# 按数字排序,再删除数字列
df_sorted = df.sort_values('数字').drop('数字', axis=1)
print(df_sorted)
```
输出结果:
```
序号 表名 sheet名 姓名 金额
0 1 西部公司 表一 Malehhjkjkgkjjgkgjk 2
2 3 东部公司 二 Femalegrhreherdfdfdfh 2
1 2 东部公司 表三 Femalestrehree 2
3 4 西部公司 表四 Maledfgfdgdfdg 2
```