import pandas as pd df = pd.DataFrame({'序号': [1, 2, 3, 4], '表名': ['西部公司', '东部公司','东部公司', '西部公司'], 'sheet名': ['招商银行', '民生银行','浙商银行', '工商银行'], '姓名': ['Malehhjkjkgkjjgkgjk', 'Femalestrehree', 'Femalegrhreherdfdfdfh', 'Maledfgfdgdfdg'], '金额': [2, 2, 2, 2]}) groups=df.groupy('sheet名') for name , group in groups: 把group按照name关键字['浙商','工商','民生','招商']先后顺序排序
时间: 2023-06-16 21:02:59 浏览: 95
可以使用 Pandas 的 sort_values() 方法按照指定列的值排序,然后再使用 groupby() 方法进行分组。代码如下:
```python
import pandas as pd
df = pd.DataFrame({
'序号': [1, 2, 3, 4],
'表名': ['西部公司', '东部公司','东部公司', '西部公司'],
'sheet名': ['招商银行', '民生银行','浙商银行', '工商银行'],
'姓名': ['Malehhjkjkgkjjgkgjk', 'Femalestrehree', 'Femalegrhreherdfdfdfh', 'Maledfgfdgdfdg'],
'金额': [2, 2, 2, 2]
})
# 按照 sheet名 列的值排序
df_sorted = df.sort_values('sheet名', key=lambda x: x.map({'浙商银行': 0, '工商银行': 1, '民生银行': 2, '招商银行': 3}))
# 按照 sheet名 分组
groups = df_sorted.groupby('sheet名')
# 输出每个分组的内容
for name, group in groups:
print(name)
print(group)
```
输出结果如下:
```
浙商银行
序号 表名 sheet名 姓名 金额
2 3 东部公司 浙商银行 Femalegrhreherdfdfdfh 2
工商银行
序号 表名 sheet名 姓名 金额
3 4 西部公司 工商银行 Maledfgfdgdfdg 2
民生银行
序号 表名 sheet名 姓名 金额
1 2 东部公司 民生银行 Femalestrehree 2
招商银行
序号 表名 sheet名 姓名 金额
0 1 西部公司 招商银行 Malehhjkjkgkjjgkgjk 2
```
阅读全文