我在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中。
答案 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)