如何根据列的不同值对数据帧行进行统一下采样?

时间:2019-09-03 05:49:12

标签: python pandas dataframe downsampling

我正在尝试对数据框行进行下采样以创建较小的数据框。假设我们的数据框有几列,每列都有预定义的分类值。如何确保每个不同的分类值都有机会出现在新的重采样数据框中?

例如:
rows = [{'A':'a', 'B':'d', 'C':'g'},{'A':'a', 'B':'e', 'C':'h'},{'A':'a', 'B':'d', 'C':'g'},{'A':'c', 'B':'f', 'C':'i'},{'A':'c', 'B':'d', 'C':'g'},{'A':'b', 'B':'e', 'C':'h'}] pd.DataFrame(rows)
out put of the code

在“ A”列中,我们具有“ a”,“ b”和“ c”值。重新采样后如何确保这些值都没有丢失?

1 个答案:

答案 0 :(得分:1)

您可以使用:

import numpy as np
import pandas as pd
data = pd.DataFrame({'col': np.repeat(['A', 'B', 'C'], 12),
                     'value1': np.repeat([1,0,1],12),
                     'value2': np.random.randint(20, 100, 36)})
data1 = data[data.file == np.random.choice(data['file'].unique())].reset_index(drop=True)

start_ix = np.random.choice(data1.index[:-3])

print(data.loc[start_ix:start_ix+3])