पंडों के साथ यादृच्छिक पूर्णांकों का डेटाफ्रेम कैसे बनाएं?


124

मुझे पता है कि अगर मैं उपयोग करता हूं randn,

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))

मुझे वह देता है जो मैं देख रहा हूं, लेकिन एक सामान्य वितरण के तत्वों के साथ। लेकिन क्या होगा अगर मैं सिर्फ यादृच्छिक पूर्णांक चाहता हूं?

randintएक सीमा प्रदान करके काम करता है, लेकिन ऐसा कोई सरणी नहीं randnकरता है। तो मैं कुछ सीमा के बीच यादृच्छिक पूर्णांक के साथ ऐसा कैसे करूं?


और जब हम सिर्फ एक कॉलम जोड़ रहे हैं तो संबंधित: पंडों: यादृच्छिक पूर्णांकों के साथ df में नया स्तंभ बनाएं
smci

जवाबों:


184

numpy.random.randintएक तीसरा तर्क ( size) स्वीकार करता है , जिसमें आप आउटपुट सरणी का आकार निर्दिष्ट कर सकते हैं। आप इसे बनाने के लिए उपयोग कर सकते हैं DataFrame-

df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

यहाँ - np.random.randint(0,100,size=(100, 4))- के (100,4)बीच यादृच्छिक पूर्णांक तत्वों के साथ आकार का एक आउटपुट सरणी बनाता है [0,100)


डेमो -

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

जो पैदा करता है:

     A   B   C   D
0   45  88  44  92
1   62  34   2  86
2   85  65  11  31
3   74  43  42  56
4   90  38  34  93
5    0  94  45  10
6   58  23  23  60
..  ..  ..  ..  ..

1
क्या आप कृपया एक कॉपी-पेस्टेबल नमूना बना सकते हैं जिसमें आयात शामिल है / जिसमें लाइन नंबर नहीं हैं?
मार्टिन थॉमा

2
उत्कृष्ट समाधान में जोड़ना। यदि आप कॉलम को कुछ भी नाम देना चाहते हैं, लेकिन उस क्रम में प्रत्येक अक्षर, आपको df = pd.DataFrame (np.random.randint) (0,100, आकार = (100, 4)), कॉलम = सूची (['एए') करना चाहिए। , 'BB', 'C2', 'D2']))
mzakaria 6

2
@ मज़्कारिया [...]पहले से ही एक सूची है, इसलिए आपको जरूरत नहीं हैlist([...])
jtlz2

1

इन दिनों NumPy के साथ यादृच्छिक पूर्णांक बनाने का अनुशंसित तरीका उपयोग करना है numpy.random.Generator.integers। ( प्रलेखन )

import numpy as np
import pandas as pd

rng = np.random.default_rng()
df = pd.DataFrame(rng.integers(0, 100, size=(100, 4)), columns=list('ABCD'))
df
----------------------
      A    B    C    D
 0   58   96   82   24
 1   21    3   35   36
 2   67   79   22   78
 3   81   65   77   94
 4   73    6   70   96
... ...  ...  ...  ...
95   76   32   28   51
96   33   68   54   77
97   76   43   57   43
98   34   64   12   57
99   81   77   32   50
100 rows × 4 columns
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.