列,DataFrame,pandas中的随机值组合

时间:2018-06-07 12:33:22

标签: python pandas

我在pandas中有下一个DataFrame:

private void searchpersonbx_TextChanged(object sender, TextChangedEventArgs e)
{
   string text = searchpersonbx.Text;
   List<string> filteredUserName = userName.Select(x => x.StartsWith(text)).ToList();
   listBox.ItemsSource = filteredUserName;
}

我想要的是具有相同列A和B以及随机元素(A B 1 23 43 446 197 5 99 12 .... 0 < A_i < A_max)的另一个DataFrame,其中某些行中A和B元素的每个唯一组合都不会存在于第一个DataFrame中。

1 个答案:

答案 0 :(得分:1)

如果您不关心分发,可以简单地使用random中的统一分发。

假设原始DataFrame名为df,并且您希望random_df具有相同的长度:

from random import random
import pandas as pd

A_max = df['A'].max()
B_max = df['B'].max()

random_df = pd.DataFrame(columns=df.columns)

i = 0
while i < range(len(df)):
    A_random = int(random() * A_max)
    B_random = int(random() * B_max)

    # Checking that the combination does not exist in the original DataFrame
    if len(df[(df['A'] == A_random) & (df['B'] == B_random)] == 0:
        i += 1
        random_df.append({'A': A_random, 'B': B_random}, ignore_index=True)