如何獲得沒有重復的結果?我有一個 CSV 檔案,如下面的描述所示,我將所有列放在一起,從所有列中獲取隨機結果,但我得到的結果有重復。
謝謝
test.csv
d c b a
-----------------
0 Q A A Q
1 K A K 8
2 8 10 8 10
import pandas as pd
import numpy as np
df = pd.read_csv('test.csv', usecols=['a','b','c','d'])
df = np.array(df.iloc[0:3])
np.random.seed(2)
print(np.random.choice(df.flatten(), size=(20, 2)))
結果
[['8' '8'] # duplicate
['K' '10']
['A' '10']
['8' '8'] # duplicate
['A' 'A']
['10' 'A'] # duplicate
['8' 'K'] # duplicate
['K' 'A']
['8' 'Q']
['K' 'K']
['8' '10']
['Q' '8']
['K' '8']
['A' '8']
['Q' 'A']
['8' 'K'] # duplicate
['K' 'Q']
['10' 'A'] # duplicate
['Q' 'K']
['A' 'K']]
uj5u.com熱心網友回復:
DataFrame.duplicated與反轉掩碼一起使用~:
a = np.random.choice(df.flatten(), size=(20, 2))
a2 = a[~pd.DataFrame(a).duplicated(keep=False)]
print (a2)
['Q' '8']
['K' '8']
['A' '8']
['Q' 'A']
['K' 'Q']
['Q' 'K']
['A' 'K']]
詳情:
print (pd.DataFrame(a).duplicated(keep=False))
0 True
1 False
2 False
3 True
4 False
5 True
6 True
7 False
8 False
9 False
10 False
11 False
12 False
13 False
14 False
15 True
16 False
17 True
18 False
19 False
dtype: bool
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/467422.html
標籤:数组 python-3.x 熊猫 麻木的
下一篇:將串列中的值剪切到逗號
