मैं डेटाफ़्रेम में JSON फ़ाइलों को पढ़ रहा हूं। डेटाफ्रेम में कुछ स्ट्रिंग (ऑब्जेक्ट) प्रकार कॉलम हो सकते हैं, कुछ न्यूमेरिक (int64 और/या float64), और कुछ डेटाटाइम प्रकार कॉलम हो सकते हैं। जब डेटा पढ़ा जाता है, डेटाटाइप अक्सर गलत होता है (यानी डेटाटाइम, int और float अक्सर "ऑब्जेक्ट" प्रकार के रूप में संग्रहीत किया जाएगा)। मैं इस संभावना पर रिपोर्ट करना चाहता हूं। (यानी एक कॉलम डेटा ऑब्जेक्ट में "ऑब्जेक्ट" (स्ट्रिंग) के रूप में है, लेकिन यह वास्तव में एक "डेटाटाइम" है)।पाइथन पांडस कॉलम डेटाटाइप
समस्या मेरे पास है कि यह निर्भर करता है समाप्त होता है जब मैं pd.to_numeric और pd.to_datetime वे दोनों का मूल्यांकन करें और स्तंभ को परिवर्तित करने की कोशिश करेंगे, और कई बार का उपयोग है की जिस पर दो मैं आखिरी कॉल करता हूं ... (मैं convert_objects() का उपयोग करने जा रहा था जो काम करता है लेकिन यह अवमूल्यन है, इसलिए बेहतर विकल्प चाहिए)।
कोड मैं dataframe स्तंभ का मूल्यांकन करने का उपयोग कर रहा है (मैं एहसास नीचे का एक बहुत बेमानी है, लेकिन मैं इसे पठनीयता के लिए इस तरह से लिखा है):
try:
inferred_type = pd.to_datetime(df[Field_Name]).dtype
if inferred_type == "datetime64[ns]":
inferred_type = "DateTime"
except:
pass
try:
inferred_type = pd.to_numeric(df[Field_Name]).dtype
if inferred_type == int:
inferred_type = "Integer"
if inferred_type == float:
inferred_type = "Float"
except:
pass
यह इतनी शर्म की बात है कि इसे बहिष्कृत किया गया है। यह एक शानदार तरीका है। –
convert_objects को [infer_objects] (https://pandas-docs.github.io/pandas-docs-travis/generated/pandas.DataFrame.infer_objects.html) द्वारा बहिष्कृत किया गया है – itzjustricky
@itzjustricky infer_objects भी पहचान नहीं पाएंगे [' 1 ',' 2 ',' 3 '] संख्यात्मक होने के नाते। पीडी। डेटाफ्रेम (['1', '2', '3'])। Infer_objects()। Dtypes "ऑब्जेक्ट" – PabTorre