2016-11-07 10 views
3

のランダムな文字列を生成します。しかし、私はパンダのバージョン0.18を使用して、次のエラー私は200の異なる値と百万キーの文字列を作成したいと考えパンダ

In [250]:import pandas as pd 

In [251]:pd.core.common.rands(3) 
Traceback (most recent call last): 

    File "<ipython-input-251-31d12e0a07e7>", line 1, in <module> 
    pd.core.common.rands(3) 

AttributeError: module 'pandas.core.common' has no attribute 'rands' 

を取得

N = 1000000 
uniques_keys = [pd.core.common.rands(3) for i in range(200)] 
keys = [random.choice(uniques_keys) for i in range(N)] 

を.0。

+1

あなたが達成しようとしていますか? – IanS

+0

N = 1000000 uniques_keys = [範囲内のi(200)のためのpd.core.common.rands(3)] keys = [random.choice(uniques_keys)for i]範囲内(N)] – clh2007

答えて

3

いくつかのソリューションがあります。

まず解決策:

機能randsは今pandas.util.testingにあるように表示されます。

pd.util.testing.rands(3) 

第二の溶液:

ゴーストレートは、下にあるnumpy実装(in the pandas source code見られるような):

import string 
RANDS_CHARS = np.array(list(string.ascii_letters + string.digits), 
         dtype=(np.str_, 1)) 

nchars = 3 
''.join(np.random.choice(RANDS_CHARS, nchars)) 

第三ソリューション:

コールnumpy.random.bytes(それはあなたの要件を満たしていることを確認してください)。

第4の解決:

他の提案のためのthis questionを参照してください。

2

あなたは使用することができます。

In [14]: pd.util.testing.rands_array? 
Signature: pd.util.testing.rands_array(nchars, size, dtype='O') 
Docstring: Generate an array of byte strings. 

デモ:

In [15]: N = 1000000 

In [16]: s_arr = pd.util.testing.rands_array(10, N) 

In [17]: s_arr 
Out[17]: array(['L6d2GwhHdT', '5oki5T8VYm', 'XKUblAUFyL', ..., 'BE5AdCa62a', 'X3zDFKj6iy', 'iwASB9xZV3'], dtype=object) 

In [18]: len(s_arr) 
Out[18]: 1000000 
関連する問題