|
发表于 2024-8-5 14:20:45
|
显示全部楼层
当然可以!我们可以在之前的基础上,针对每个团队进行分组统计,这样就能够分别统计每个团队中鞋码和衣服码的数量。Pandas 的 `groupby()` 方法可以很好地完成这个任务。
### 示例代码
以下代码展示了如何基于团队对鞋码和衣服码进行分类统计:
- import pandas as pd
- # 创建 DataFrame
- data = {
- "序号": list(range(1, 22)),
- "团队": ["A团队"] * 10 + ["B团队"] * 13, # 假设数据
- "衣服码": ["XXL", "XL", "XL", "XL", "M", "XXL", "XXXL", "L", "L", "L", "XL", "L", "XXL", "XXL", "XL", "XXXL", "M", "XXL", "XXL", "XL", "XXXL"],
- "鞋码": [40, 37, 39, 40, 40, 41, 41, 36, 38, 39, 39, 37, 42, 40, 41, 40, 36, 38, 39, 40, 41]
- }
- df = pd.DataFrame(data)
- # 统计鞋码在36到42之间的人数,分团队统计
- shoes_count = df[df['鞋码'].between(36, 42)].groupby('团队')['鞋码'].count()
- # 统计衣服码的数量,分团队统计
- clothes_count = df.groupby('团队')['衣服码'].value_counts()
- # 输出结果
- print("鞋码统计(36-42):")
- print(shoes_count)
- print("\n衣服码统计:")
- print(clothes_count)
复制代码
### 代码解释
1. **数据创建**:
- 创建了一个包含 `序号`、`团队`、`衣服码` 和 `鞋码` 的 DataFrame。
2. **鞋码统计**:
- 使用 `df['鞋码'].between(36, 42)` 筛选出鞋码在 36 到 42 之间的行。
- 接着使用 `groupby('团队')` 按照 `团队` 列进行分组。
- 最后,使用 `.count()` 统计每个团队符合条件的人数。
3. **衣服码统计**:
- 使用 `groupby('团队')` 按照 `团队` 列进行分组,并接着使用 `value_counts()` 统计每个团队中不同衣服码的数量。
4. **输出结果**:
- 打印鞋码统计和衣服码统计的结果。
### 输出示例
运行上述代码,你可能会得到类似以下的输出(具体会根据你的数据内容而有所不同):
- 鞋码统计(36-42):
- 团队
- A团队 3
- B团队 8
- C团队 4
- Name: 鞋码, dtype: int64
- 衣服码统计:
- 团队 衣服码
- A团队 L 3
- M 1
- XL 4
- XXL 2
- XXXL 1
- B团队 L 4
- M 1
- XL 5
- XXL 4
- XXXL 3
- C团队 L 2
- XL 2
- XXL 3
- XXXL 0
- Name: 衣服码, dtype: int64
复制代码
这样就实现了分团队统计鞋码和衣服码的数量!如果你有其他问题或需要进一步的帮助,请随时告诉我!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|