खोज…


परिचय

DataFrame एक डेटा संरचना है जो श्रृंखला और पैनल के अलावा पांडा लाइब्रेरी द्वारा प्रदान की जाती है। यह एक 2-आयामी संरचना है और इसकी तुलना पंक्तियों और स्तंभों की तालिका से की जा सकती है।

प्रत्येक पंक्ति को एक पूर्णांक सूचकांक (0..N) या एक लेबल द्वारा स्पष्ट रूप से सेट किया जा सकता है, जब डेटाफ़्रेम ऑब्जेक्ट बनाते हैं। प्रत्येक स्तंभ अलग प्रकार का हो सकता है और एक लेबल द्वारा पहचाना जाता है।

यह विषय DataFrame ऑब्जेक्ट बनाने / बनाने के लिए विभिन्न तरीकों को शामिल करता है। पूर्व। Numpy सरणियों से, tuples की सूची से, शब्दकोश से।

एक नमूना बनाएँ DataFrame

import pandas as pd

दो स्तंभों वाले एक शब्दकोश से एक डेटाफ़्रेम बनाएँ: numbers और colors । प्रत्येक कुंजी स्तंभ नाम का प्रतिनिधित्व करती है और मान डेटा की एक श्रृंखला है, स्तंभ की सामग्री:

df = pd.DataFrame({'numbers': [1, 2, 3], 'colors': ['red', 'white', 'blue']})

डेटाफ्रेम की सामग्री दिखाएं:

print(df)
# Output: 
#   colors  numbers
# 0    red        1
# 1  white        2
# 2   blue        3

आदेश कॉलम पांडा वर्णानुक्रम के रूप में dict आदेश दिया नहीं कर रहे हैं। आदेश को निर्दिष्ट करने के लिए, columns पैरामीटर का उपयोग करें।

df = pd.DataFrame({'numbers': [1, 2, 3], 'colors': ['red', 'white', 'blue']}, 
                  columns=['numbers', 'colors'])

print(df)  
# Output:     
#    numbers colors
# 0        1    red
# 1        2  white
# 2        3   blue

Numpy का उपयोग करके एक नमूना DataFrame बनाएं

यादृच्छिक संख्याओं का एक DataFrame बनाएँ:

import numpy as np
import pandas as pd

# Set the seed for a reproducible sample
np.random.seed(0)  

df = pd.DataFrame(np.random.randn(5, 3), columns=list('ABC'))

print(df)
# Output:
#           A         B         C
# 0  1.764052  0.400157  0.978738
# 1  2.240893  1.867558 -0.977278
# 2  0.950088 -0.151357 -0.103219
# 3  0.410599  0.144044  1.454274
# 4  0.761038  0.121675  0.443863

पूर्णांक के साथ एक DataFrame बनाएँ:

df = pd.DataFrame(np.arange(15).reshape(5,3),columns=list('ABC'))

print(df)
# Output:
#     A   B   C
# 0   0   1   2
# 1   3   4   5
# 2   6   7   8
# 3   9  10  11
# 4  12  13  14

एक DataFrame बनाएँ और कॉलम और पंक्तियों के पार NaT, NaN, 'nan', None ( NaT, NaN, 'nan', None ) शामिल करें:

df = pd.DataFrame(np.arange(48).reshape(8,6),columns=list('ABCDEF'))

print(df)
# Output: 
#     A   B   C   D   E   F
# 0   0   1   2   3   4   5
# 1   6   7   8   9  10  11
# 2  12  13  14  15  16  17
# 3  18  19  20  21  22  23
# 4  24  25  26  27  28  29
# 5  30  31  32  33  34  35
# 6  36  37  38  39  40  41
# 7  42  43  44  45  46  47

df.ix[::2,0] = np.nan # in column 0, set elements with indices 0,2,4, ... to NaN 
df.ix[::4,1] = pd.NaT # in column 1, set elements with indices 0,4, ... to np.NaT
df.ix[:3,2] = 'nan'   # in column 2, set elements with index from 0 to 3 to 'nan'
df.ix[:,5] = None     # in column 5, set all elements to None
df.ix[5,:] = None     # in row 5, set all elements to None    
df.ix[7,:] = np.nan   # in row 7, set all elements to NaN

print(df)
# Output:
#     A     B     C   D   E     F
# 0 NaN   NaT   nan   3   4  None
# 1   6     7   nan   9  10  None
# 2 NaN    13   nan  15  16  None
# 3  18    19   nan  21  22  None
# 4 NaN   NaT    26  27  28  None
# 5 NaN  None  None NaN NaN  None
# 6 NaN    37    38  39  40  None
# 7 NaN   NaN   NaN NaN NaN   NaN

शब्दकोश का उपयोग करते हुए कई संग्रह से एक नमूना DataFrame बनाएँ

import pandas as pd
import numpy as np

np.random.seed(123) 
x = np.random.standard_normal(4)
y = range(4)
df = pd.DataFrame({'X':x, 'Y':y})
>>> df
          X  Y
0 -1.085631  0
1  0.997345  1
2  0.282978  2
3 -1.506295  3

Tuples की सूची से एक DataFrame बनाएँ

आप साधारण ट्यूपल्स की सूची से एक डाटाफ्रेम बना सकते हैं, और यहां तक कि उन ट्यूपल के विशिष्ट तत्वों को भी चुन सकते हैं, जिनका आप उपयोग करना चाहते हैं। यहां हम अंतिम तत्व को छोड़कर प्रत्येक ट्यूपल में सभी डेटा का उपयोग करके एक डेटाफ़्रेम बनाएंगे।

import pandas as pd

data = [
('p1', 't1', 1, 2),
('p1', 't2', 3, 4),
('p2', 't1', 5, 6),
('p2', 't2', 7, 8),
('p2', 't3', 2, 8)
]

df = pd.DataFrame(data)

print(df)
#     0   1  2  3
# 0  p1  t1  1  2
# 1  p1  t2  3  4
# 2  p2  t1  5  6
# 3  p2  t2  7  8
# 4  p2  t3  2  8

सूचियों के एक शब्दकोश से एक DataFrame बनाएँ

एक तानाशाही जिसका मान सूचीबद्ध करता है पारित करके कई सूचियों से एक DataFrame बनाएँ। शब्दकोश की कुंजियों को स्तंभ लेबल के रूप में उपयोग किया जाता है। सूचियाँ ndarrays भी हो सकती हैं। सूचियों / ndarrays सभी की लंबाई समान होनी चाहिए।

import pandas as pd
    
# Create DF from dict of lists/ndarrays
df = pd.DataFrame({'A' : [1, 2, 3, 4],
                       'B' : [4, 3, 2, 1]})
df
# Output:
#       A  B
#    0  1  4
#    1  2  3
#    2  3  2
#    3  4  1

यदि सरणियाँ समान लंबाई नहीं हैं तो एक त्रुटि उठाई जाती है

df = pd.DataFrame({'A' : [1, 2, 3, 4], 'B' : [5, 5, 5]}) # a ValueError is raised

Ndarrays का उपयोग करना

import pandas as pd
import numpy as np

np.random.seed(123) 
x = np.random.standard_normal(4)
y = range(4)
df = pd.DataFrame({'X':x, 'Y':y})
df
# Output:           X  Y
#         0 -1.085631  0
#         1  0.997345  1
#         2  0.282978  2
#         3 -1.506295  3

अतिरिक्त विवरण यहां देखें: http://pandas.pydata.org/pandas-docs/stable/dsintro.html#from-dict-of-ndarrays-lists

डेटाटाइम के साथ एक नमूना DataFrame बनाएं

import pandas as pd
import numpy as np

np.random.seed(0)
# create an array of 5 dates starting at '2015-02-24', one per minute
rng = pd.date_range('2015-02-24', periods=5, freq='T')
df = pd.DataFrame({ 'Date': rng, 'Val': np.random.randn(len(rng)) }) 

print (df)
# Output:
#                  Date       Val
# 0 2015-02-24 00:00:00  1.764052
# 1 2015-02-24 00:01:00  0.400157
# 2 2015-02-24 00:02:00  0.978738
# 3 2015-02-24 00:03:00  2.240893
# 4 2015-02-24 00:04:00  1.867558

# create an array of 5 dates starting at '2015-02-24', one per day
rng = pd.date_range('2015-02-24', periods=5, freq='D')
df = pd.DataFrame({ 'Date': rng, 'Val' : np.random.randn(len(rng))}) 

print (df)
# Output:
#         Date       Val
# 0 2015-02-24 -0.977278
# 1 2015-02-25  0.950088
# 2 2015-02-26 -0.151357
# 3 2015-02-27 -0.103219
# 4 2015-02-28  0.410599

# create an array of 5 dates starting at '2015-02-24', one every 3 years
rng = pd.date_range('2015-02-24', periods=5, freq='3A')
df = pd.DataFrame({ 'Date': rng, 'Val' : np.random.randn(len(rng))})  

print (df)
# Output:
#         Date       Val
# 0 2015-12-31  0.144044
# 1 2018-12-31  1.454274
# 2 2021-12-31  0.761038
# 3 2024-12-31  0.121675
# 4 2027-12-31  0.443863

साथ DataFrame DatetimeIndex :

import pandas as pd
import numpy as np

np.random.seed(0)
rng = pd.date_range('2015-02-24', periods=5, freq='T')
df = pd.DataFrame({ 'Val' : np.random.randn(len(rng)) }, index=rng)  

print (df)
# Output:
#                           Val
# 2015-02-24 00:00:00  1.764052
# 2015-02-24 00:01:00  0.400157
# 2015-02-24 00:02:00  0.978738
# 2015-02-24 00:03:00  2.240893
# 2015-02-24 00:04:00  1.867558

date_range में पैरामीटर freq लिए Offset-aliases :

Alias     Description
B         business day frequency  
C         custom business day frequency (experimental)  
D         calendar day frequency  
W         weekly frequency  
M         month end frequency  
BM        business month end frequency  
CBM       custom business month end frequency  
MS        month start frequency  
BMS       business month start frequency  
CBMS      custom business month start frequency  
Q         quarter end frequency  
BQ        business quarter endfrequency  
QS        quarter start frequency  
BQS       business quarter start frequency  
A         year end frequency  
BA        business year end frequency  
AS        year start frequency  
BAS       business year start frequency  
BH        business hour frequency  
H         hourly frequency  
T, min    minutely frequency  
S         secondly frequency  
L, ms     milliseconds  
U, us     microseconds  
N         nanoseconds  

MultiIndex के साथ एक नमूना DataFrame बनाएं

import pandas as pd
import numpy as np

from_tuples का उपयोग करना:

np.random.seed(0)
tuples = list(zip(*[['bar', 'bar', 'baz', 'baz',
                     'foo', 'foo', 'qux', 'qux'],
                      ['one', 'two', 'one', 'two',
                       'one', 'two', 'one', 'two']]))

idx = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])

from_product का उपयोग करना:

idx = pd.MultiIndex.from_product([['bar', 'baz', 'foo', 'qux'],['one','two']])

फिर, इस मल्टीइन्डेक्स का उपयोग करें:

df = pd.DataFrame(np.random.randn(8, 2), index=idx, columns=['A', 'B'])
print (df)
                     A         B
first second                    
bar   one     1.764052  0.400157
      two     0.978738  2.240893
baz   one     1.867558 -0.977278
      two     0.950088 -0.151357
foo   one    -0.103219  0.410599
      two     0.144044  1.454274
qux   one     0.761038  0.121675
      two     0.443863  0.333674

एक डेटाफ़्रेम को अचार (.plk) प्रारूप में सहेजें और लोड करें

import pandas as pd

# Save dataframe to pickled pandas object
df.to_pickle(file_name) # where to save it usually as a .plk

# Load dataframe from pickled pandas object
df= pd.read_pickle(file_name)

शब्दकोशों की सूची से एक DataFrame बनाएँ

एक DataFrame शब्दकोशों की सूची से बनाया जा सकता है। कुंजी का उपयोग स्तंभ नामों के रूप में किया जाता है।

import pandas as pd
L = [{'Name': 'John', 'Last Name': 'Smith'}, 
         {'Name': 'Mary', 'Last Name': 'Wood'}]
pd.DataFrame(L)
# Output:  Last Name  Name
# 0     Smith  John
# 1      Wood  Mary

अनुपलब्ध मान NaN s से भरे हुए हैं

L = [{'Name': 'John', 'Last Name': 'Smith', 'Age': 37},
     {'Name': 'Mary', 'Last Name': 'Wood'}]
pd.DataFrame(L)
# Output:     Age Last Name  Name
#          0   37     Smith  John
#          1  NaN      Wood  Mary


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow