python写一个函数,传入一个dataframe A,筛选出A中Category为B,C,D,E,F,G,H的数据,并从每个Category里随机抽取三条数据组成一个新的dataframe,并返回该dataframe
时间: 2023-11-28 16:47:52 浏览: 54
Python中pandas dataframe删除一行或一列:drop函数详解
可以使用 Pandas 库实现这个功能,具体代码如下:
```python
import pandas as pd
import numpy as np
def select_random_data(df):
# 筛选出 Category 为 B,C,D,E,F,G,H 的数据
df_selected = df[df['Category'].isin(['B', 'C', 'D', 'E', 'F', 'G', 'H'])]
# 从每个 Category 中随机抽取三条数据
df_sampled = df_selected.groupby('Category').apply(lambda x: x.sample(n=3))
# 重置索引
df_sampled = df_sampled.reset_index(drop=True)
return df_sampled
```
其中,我们使用 `df[df['Category'].isin(['B', 'C', 'D', 'E', 'F', 'G', 'H'])]` 筛选出 Category 为 B,C,D,E,F,G,H 的数据,使用 `df.groupby('Category').apply(lambda x: x.sample(n=3))` 从每个 Category 中随机抽取三条数据。最后使用 `reset_index` 重置索引。
阅读全文