मान लीजिए कि dfएक पांडा डेटाफ़्रेम है। मैं संख्यात्मक प्रकार के सभी स्तंभों को खोजना चाहूंगा। कुछ इस तरह:
isNumeric = is_numeric(df)
मान लीजिए कि dfएक पांडा डेटाफ़्रेम है। मैं संख्यात्मक प्रकार के सभी स्तंभों को खोजना चाहूंगा। कुछ इस तरह:
isNumeric = is_numeric(df)
जवाबों:
आप select_dtypesDataFrame की विधि का उपयोग कर सकते हैं । इसमें दो पैरामीटर शामिल हैं और शामिल नहीं हैं। तो न्यूमेरिक की तरह दिखेगा:
numerics = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']
newdf = df.select_dtypes(include=numerics)
list(df.select_dtypes(include=[np.number]).columns.values) संख्यात्मक कॉलम के नामों की एक सूची प्राप्त करने के लिए उपयोग कर सकते हैं
आप _get_numeric_data()केवल संख्यात्मक स्तंभों को फ़िल्टर करने के लिए undocumented फ़ंक्शन का उपयोग कर सकते हैं:
df._get_numeric_data()
उदाहरण:
In [32]: data
Out[32]:
A B
0 1 s
1 2 s
2 3 s
3 4 s
In [33]: data._get_numeric_data()
Out[33]:
A
0 1
1 2
2 3
3 4
ध्यान दें कि यह एक "निजी पद्धति" (यानी, एक कार्यान्वयन विवरण) है और भविष्य में परिवर्तन या कुल निष्कासन के अधीन है। सावधानी के साथ प्रयोग करें ।
केवल संख्यात्मक कॉलम के साथ एक नया डेटाफ्रेम बनाने के लिए सरल एक-लाइन उत्तर:
df.select_dtypes(include=np.number)
यदि आप संख्यात्मक कॉलम के नाम चाहते हैं:
df.select_dtypes(include=np.number).columns.tolist()
पूरा कोड:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': range(7, 10),
'B': np.random.rand(3),
'C': ['foo','bar','baz'],
'D': ['who','what','when']})
df
# A B C D
# 0 7 0.704021 foo who
# 1 8 0.264025 bar what
# 2 9 0.230671 baz when
df_numerics_only = df.select_dtypes(include=np.number)
df_numerics_only
# A B
# 0 7 0.704021
# 1 8 0.264025
# 2 9 0.230671
colnames_numerics_only = df.select_dtypes(include=np.number).columns.tolist()
colnames_numerics_only
# ['A', 'B']
df.select_dtypes(include=['int64']).columns.tolist()
include=। select_dtypes(np.number)
df.fillna(value=0, inplace=True)
df.select_dtypes(exclude=['object'])
datetimeहोते हैं, जो संख्यात्मक प्रकार नहीं होते हैं
निम्नलिखित कोड एक डेटा सेट के संख्यात्मक कॉलम के नामों की सूची लौटाएंगे।
cnames=list(marketing_train.select_dtypes(exclude=['object']).columns)
यहां marketing_trainमेरा डेटा सेट है और select_dtypes()बहिष्करण का उपयोग करके डेटा प्रकारों का चयन करने के लिए फ़ंक्शन है और इसमें तर्कों को शामिल किया गया है और कॉलम का उपयोग उपरोक्त कोड के डेटा सेट आउटपुट के कॉलम नाम को प्राप्त करने के लिए किया जाता है:
['custAge',
'campaign',
'pdays',
'previous',
'emp.var.rate',
'cons.price.idx',
'cons.conf.idx',
'euribor3m',
'nr.employed',
'pmonths',
'pastEmail']
धन्यवाद
def is_type(df, baseType):
import numpy as np
import pandas as pd
test = [issubclass(np.dtype(d).type, baseType) for d in df.dtypes]
return pd.DataFrame(data = test, index = df.columns, columns = ["test"])
def is_float(df):
import numpy as np
return is_type(df, np.float)
def is_number(df):
import numpy as np
return is_type(df, np.number)
def is_integer(df):
import numpy as np
return is_type(df, np.integer)
इस उत्तर को अपनाने से आप कर सकते हैं
df.ix[:,df.applymap(np.isreal).all(axis=0)]
यहां, यह np.applymap(np.isreal)दर्शाता है कि क्या डेटा फ़्रेम में प्रत्येक सेल संख्यात्मक है, और यह .axis(all=0)जांचता है कि क्या स्तंभ के सभी मान सत्य हैं और बूलियंस की एक श्रृंखला लौटाता है जिसका उपयोग वांछित कॉलमों को अनुक्रमित करने के लिए किया जा सकता है।
कृपया नीचे कोड देखें:
if(dataset.select_dtypes(include=[np.number]).shape[1] > 0):
display(dataset.select_dtypes(include=[np.number]).describe())
if(dataset.select_dtypes(include=[np.object]).shape[1] > 0):
display(dataset.select_dtypes(include=[np.object]).describe())
इस तरह आप जाँच सकते हैं कि मान सांख्यिक हैं जैसे फ्लोट और इंट या श्रिंग मान। दूसरा यदि कथन का उपयोग स्ट्रिंग मानों की जांच के लिए किया जाता है जो ऑब्जेक्ट द्वारा संदर्भित किया जाता है।
हम नीचे दिए अनुसार आवश्यकता के अनुसार डेटा प्रकारों को शामिल और बाहर कर सकते हैं:
train.select_dtypes(include=None, exclude=None)
train.select_dtypes(include='number') #will include all the numeric types
जुपिटर नोटबुक से संदर्भित।
सभी संख्यात्मक प्रकारों का चयन करने के लिए , का उपयोग करें np.numberया'number'
स्ट्रिंग्स का चयन करने के लिए आपको objectdtype का उपयोग करना होगा लेकिन ध्यान दें कि यह सभी ऑब्जेक्ट dtype कॉलम वापस कर देगा
NumPy dtype hierarchy <http://docs.scipy.org/doc/numpy/reference/arrays.scalars.html>__ देखें
डेटासेटाइम का चयन करने के लिए, का उपयोग करें np.datetime64, 'datetime'या
'datetime64'
समय-काल का चयन करने के लिए, का उपयोग करें np.timedelta64, 'timedelta'या
'timedelta64'
पंडों श्रेणीगत dtypes का चयन करने के लिए, का उपयोग करें 'category'
पंडों डेटेटिमेट्ज़ डीटिप्स का चयन करने के लिए, 'datetimetz'(0.20.0 में नया) या `` डेटाटाइम 64 [एनएस, टीज़] का उपयोग करें
dtypeकिया जा रहा हैobject, लेकिन सभी तत्वों सांख्यिक किया जा रहा है, आंकिक या नहीं के रूप में गिना जाता है। यदि नहीं, तो हनन का जवाब लें, क्योंकि यह भी तेज है। नहीं तो मेरा लो।