这个可以怎么做呀 可以解答一下吗

python分层抽样
任务四:根据Survived字段的取值抽取数据
Survived= 1的记录中随机抽取300条数据,Survived=0的记录中随机抽取100条数据, 最终形成400条记录的数据集。
任务五:筛选票价高于30的数据,最终保留抽取男女各占-半的数据

img


import pandas as pd


def task_4(data):
    """
    :param data:是将数据处理好后的结果,我猜测你的数据应该是泰坦尼克人员幸存,数据类型应该是dataframe形式的
    :return:400条Survived数据
    """
    # 找到所有的Survived字段
    Survived_1 = data.loc[data['Survived'] == 1]
    Survived_0 = data.loc[data['Survived'] == 0]
    # 随机抽样
    Survived_300 = Survived_1.sample(n=300, random_state=1, axis=0)
    Survived_100 = Survived_0.sample(n=100, random_state=1, axis=0)
    # 将抽样的样本进行拼接
    new_Survived = pd.concat([Survived_300, Survived_100])
    return new_Survived


def task_5(data):
    """
    :param data: 将数据处理好后的结果
    :return:
    """
    # 选取票价大于30的行
    ticket = data.query("Ticket > 30")
    # 从中选出男性和女性
    ticket_male = data.loc[ticket['sex'] == "male"]
    ticket_female = data.loc[ticket['sex'] == "female"]
    # 在男性和女性中随机选出一半人数
    ticket_male_half = ticket_male.sample(frac=0.5, replace=True, random_state=1)
    ticket_female_half = ticket_female.sample(frac=0.5, replace=True, random_state=1)
    # 将选出的人数进行拼接
    new_ticket = pd.concat([ticket_male_half, ticket_female_half])
    return new_ticket
```python


```

定义一个随机抽取的函数
def rand_get(start,end,num):
----然后每次获取一个随机数(start到end间),如果新随机数是之前已获取的,则跳过,直到获取满num个。

任务4:然后获取Survived= 1的记录,调用上面的函数抽取300条,Survived=0的记录抽取100条,合起来返回就行了。
任务5:先查出票价高于30的所有男数据,然后查询票价高于30的所有女数据,然后设置抽取数,抽取数不要大于上2组数据的最小数量,然后调用上面的随机抽取函数,最后将男女的数据合起来