从另一个数据帧中的列中采样产生相同分布的数据帧可以通过以下步骤实现:
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10]})
df2 = pd.DataFrame({'C': [11, 12, 13, 14, 15],
'D': [16, 17, 18, 19, 20]})
sample_column = 'A'
value_counts()
函数获取列A中每个值的计数,并将其保存在字典中:value_counts_dict = df1[sample_column].value_counts().to_dict()
apply()
函数结合numpy的random.choice()
函数来实现:df2[sample_column] = df2[sample_column].apply(lambda x: np.random.choice(list(value_counts_dict.keys()), p=list(value_counts_dict.values())))
完成以上步骤后,df2的列A将采样产生相同分布的数据,保证了两个数据帧中列A的分布相同。
这个方法适用于采样数据不是太大的情况,如果数据量很大,可能需要考虑分布的近似采样方法,例如使用随机采样算法,以保证采样的效率和准确性。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅为示例,具体产品和介绍可能需要根据实际情况调整。
领取专属 10元无门槛券
手把手带您无忧上云