我想使用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行,但是如果我想采样50行包含0到50行包含1 in df['a']
。
您可以使用==
运算符列出布尔值*。当将所述列表放入getter([]
)时,它将过滤值。如果需要,可以使用n=50
创建50行的样本大小。
df[df['a']==1].sample(n=50)
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[df['a']==1].sample(n=50))
* List在这种情况下并不是字面上的列表,但它是解释其工作原理的好词。从技术上讲,它是将行映射到true / false值的DataFrame。
如果要对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]))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句