Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于标准的样本_Python_Pandas - Fatal编程技术网

Python 基于标准的样本

Python 基于标准的样本,python,pandas,Python,Pandas,我希望使用pandas函数,但不使用分组或筛选数据的条件 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randint(low=0, high=5, size=(10000, 2)),columns=['a', 'b']) print df.sample(n=100) 这将对100行进行采样,但是如果我想在df['a']中对包含0到50行(包含1)的50行进行采样,您可以使用=操作符创建布尔值列表*。当

我希望使用pandas函数,但不使用分组或筛选数据的条件

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(low=0, high=5, size=(10000, 2)),columns=['a', 'b'])

print df.sample(n=100)

这将对100行进行采样,但是如果我想在
df['a']
中对包含0到50行(包含1)的50行进行采样,您可以使用
=
操作符创建布尔值列表*。当所述列表被放入getter(
[]
)时,它将过滤这些值。如果需要,可以使用
n=50
创建50行的样本大小

新代码 完整代码 *在本文中,列表并不是一个字面意义上的列表,但它是一个解释其工作原理的好词。从技术上讲,它是一个将行映射为真/假值的数据帧

更模糊的数据帧采样 如果要对a为1或0的所有50个样本进行采样:

print(df[(df['a']==1) | (df['a']==0)].sample(n=50))
如果你想各抽取50个样本:

df1 = df[df['a']==1].sample(n=50)
df0 = df[df['a']==0].sample(n=50)
print(pd.concat([df1,df0]))

当然但是如果您需要从
df['a']==1
df['a']==0
中各抽取50个样本,而不使用一些奇怪的if语句和拆分数据,该怎么办etc@destinychoice更新了我的答案。我明白了。但后一种方法最终会有两个数据帧,每个数据帧都是50,其中一个df应该包含100个值?@destinychoice更新。如果我真的帮了忙,如果你能标记为“解决方案/投票表决”,那会很有帮助。@Neil我怎么才能添加多个条件?例如,如果我想根据列a=1、b=5、Z=“Michael”…等进行采样
print(df[(df['a']==1) | (df['a']==0)].sample(n=50))
df1 = df[df['a']==1].sample(n=50)
df0 = df[df['a']==0].sample(n=50)
print(pd.concat([df1,df0]))