2015-11-20 22 views
7

pandas serisi oluşturmaya çalışıyorum. Serilerin bir sütunu sıralı sayılar içermelidir. Bir sütun k ve k+100 arasında rasgele sayılar içermelidir. Bir sütun, bir listede dizeler arasında rasgele seçim içermelidir. ['A', 'B', 'C', ... 'Z']pandalar n elemanları ile bir dizi oluşturmak (sıralı veya randbetween)

+2

SO bir kod yazma hizmeti – EdChum

+0

Bu değil, çabalarını göstermek Lütfen Birden fazla soruya bölünmelidir. –

+0

Ayrıca bir sütun bir dizidir, üç 'Series' ile bir' DataFrame 'istediğiniz gibi geliyor. –

cevap

7

olarak ayarlanır sütun adlarını belirtmek istiyorum. kod bloğunun yorumlarında (#) daha fazla bilgi için birkaç bağlantı bulacaksınız:

import pandas as pd 
import numpy as np 
import random 
import string 

k = 5 
N = 10 

#http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.randint.html 
#http://stackoverflow.com/a/2257449/2901002 

df = pd.DataFrame({ 'A' : range(1, N + 1 ,1), 
    'B' : np.random.randint(k, k + 100 , size=N), 
    'C' : pd.Series(random.choice(string.ascii_uppercase) for _ in range(N)) }) 

print df 
# A B C 
#0 1 60 O 
#1 2 94 L 
#2 3 10 W 
#3 4 94 X 
#4 5 60 O 
#5 6 20 K 
#6 7 58 Y 
#7 8 40 I 
#8 9 49 X 
#9 10 65 S 

Numpy çözüm:

import pandas as pd 
import numpy as np 

k = 5 
N = 10 

alphabet = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ') 

#http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.choice.html 

df = pd.DataFrame({ 'A' : range(1, N + 1 ,1), 
    'B' : np.random.randint(k, k + 100 , size=N), 
    'C' : np.random.choice(np.array(alphabet, dtype="|S1"), N) }) 

print df 
# A B C 
#0 1 16 U 
#1 2 76 X 
#2 3 101 N 
#3 4 61 F 
#4 5 52 J 
#5 6 62 A 
#6 7 99 L 
#7 8 23 N 
#8 9 75 D 
#9 10 16 Q 
3
import pandas 
n = 30 
k = 40 
pandas.DataFrame([(i, random.randint(k, k+100), chr(random.randint(ord('A'), ord('Z')))) for i in xrange(0, n) 

Eğer aksi takdirde bir çok çözüme olabilir 0,1,2

İlgili konular