帮我写一段代码,将df自上而下按顺序将行平均分成20组,然后统计每一组中‘y’列每个对象的个数,并生成一个df
时间: 2024-03-02 11:49:25 浏览: 89
好的,可以使用 pandas 的 `cut` 函数实现将行平均分成20组,然后使用 `groupby` 和 `count` 统计每个分组中 'y' 列的对象个数。下面是代码示例:
```python
import pandas as pd
# 生成示例数据
df = pd.DataFrame({'x': range(100), 'y': [chr(i % 26 + 65) for i in range(100)]})
# 将行平均分成20组
df['group'] = pd.cut(df.index, bins=20, labels=False)
# 统计每个分组中 'y' 列的对象个数,生成新的 df
new_df = df.groupby(['group', 'y']).size().reset_index(name='count')
```
其中,`bins=20` 表示将行分成20组,`labels=False` 表示用数字标记每个分组。`groupby(['group', 'y'])` 表示按 'group' 和 'y' 列进行分组,`.size()` 表示统计每个分组中的对象个数,`.reset_index(name='count')` 表示将结果转换为新的 df,列名为 'count'。
阅读全文