收集随机标记的目的是了解2-3集群之间的差异,稍后我将进行机器学习(随机森林)。
所以问题是,我想把label0和label1连接到一个组,把label2和label3连接到另一个组。
然后,随机更改标签的顺序,如label0与label2,label1与label3,...and等。我不知道怎么自动做。
预期的结果如下
有解决办法吗?谢谢
发布于 2022-01-15 17:21:26
我想我有办法解决你的问题
import pandas as pd
import random
data = {
'col1': [0, 1, 2, 3, 4, 5, 6, 7],
'col2': [7, 6, 5, 4, 3, 2, 1, 0],
'label': ['0', '0', '1', '1', '2', '2', '3', '3']
}
df = pd.DataFrame(data=data)
labels = list(df['label'].unique())
num_iterations = 10
for i in range(10):
random.shuffle(labels)
dfs = []
for j in range(1, len(labels), 2):
series = df[(df['label'] == labels[j-1]) | (df['label'] == labels[j])][['col1', 'col2']].agg('sum')
new_label = labels[j-1] + ' ' + labels[j]
new_df = series.to_frame().T.assign(label=new_label)
dfs.append(new_df)
shuffeled_df = pd.concat(dfs)
所以我先拿出一个标签的列表,然后把它洗牌。然后选择成对的标签并计算和。这是为所有标签对(在这个迭代中)完成的。最后,将创建一个新的组合DataFrame。
https://stackoverflow.com/questions/70722945
复制相似问题