मैं निम्नलिखित कमांड का उपयोग कर रहा हूं: (पायथन 3)

Mydataframe__df.to_csv(string_io, sep=',', quoting=csv.QUOTE_ALL, header=True, index=False , encoding='utf-8')
df_writer = Mydata_Output.get_writer('/MYFILE_TEST.csv')
df_string = string_io.getvalue()

# save the string as bytes to with the writer
df_writer.write(df_string.encode('utf-8'))

# close the writer connection
df_writer.close()

समस्या "012345" जैसे प्रारूप वाले कॉलम के लिए है, नोटपैड के साथ इसे खोलने पर भी आउटपुट फ़ाइल में अग्रणी 0 हटा दिया जाता है और यहां तक ​​​​कि जब कॉलम प्रारूप डेटाफ्रेम में स्ट्रिंग के रूप में सेट किया जाता है।

0
Nono 15 अक्टूबर 2019, 21:21

2 जवाब

मैं यहां भी नया हूं इसलिए टिप्पणी करने के लिए यहां स्ट्रीट क्रेडिट नहीं है।

आप डेटा को आउटपुट करने से पहले एक स्ट्रिंग में कनवर्ट करके अग्रणी शून्य को संरक्षित कर सकते हैं। मान लीजिए, उदाहरण के लिए, आप अपने डेटा कॉलम में आठ अंक रखना चाहते हैं, तो आप शून्य के साथ स्ट्रिंग को बाएं पैड में zfill का उपयोग कर सकते हैं, इसलिए यह आठ अंक लंबा है।

outvar = str(numvar).zfill(8)
0
SouthernYankee65 24 अक्टूबर 2019, 06:46
1
मैं यह कोशिश करूंगा। मुझे लगता है कि मुझे प्रत्येक कॉलम के लिए एक प्रारूप परिभाषित करना होगा। आपके उत्तर के लिए धन्यवाद।
 – 
Nono
17 अक्टूबर 2019, 00:06
मैंने अभी-अभी ज़फिल की खोज की है! मैंने अपना जवाब अपडेट किया। अगर इससे आपकी समस्या हल हो जाती है और आप इसे उत्तर के रूप में स्वीकार कर सकते हैं, तो इसकी बहुत सराहना की जाएगी।
 – 
SouthernYankee65
24 अक्टूबर 2019, 06:42
1
यह अब के लिए अच्छा है, धन्यवाद - मेरी दायर हमेशा एक ही लंबाई के साथ नहीं होती है लेकिन मुझे एक समाधान मिला। मैं इसे यहां पोस्ट करूंगा।
 – 
Nono
25 अक्टूबर 2019, 07:08

अग्रणी 0 के साथ समस्या यह है कि जब हम csv लिखने से पहले डेटाफ़्रेम को पांडा में लोड करते हैं तो डिफ़ॉल्ट रूप से पांडा अपने स्वयं के डेटा प्रकार का अनुमान लगाता है। स्रोत डेटाफ़्रेम रखने के लिए .get_dataframe(infer_with_pandas=False) बल। मुद्दा यह हो जाता है कि जब हमारे पास डेटा (स्ट्रिंग डेटा फ़ील्ड के अलावा) में नल होता है, तो पांडा इसे पसंद नहीं करता है, इसलिए हमें सब कुछ स्ट्रिंग में बदलना होगा या डेटा को पहले साफ करना होगा .... .get_dataframe(infer_with_pandas=False) मिला। यहां एक प्रकाशन में। मैं इसे बाद में संदर्भित करने का प्रयास करूंगा।

# Read recipe inputs
Mydataframe = dataiku.Dataset("TESTING_for_leading0")
Mydataframe_df = Mydataframe.get_dataframe(infer_with_pandas=False)

Mydataframe_df.to_csv(string_io, sep=',', quoting=csv.QUOTE_ALL, header=True, index=False , encoding='utf-8')
df_writer = Mydata_Output.get_writer('/MYFILE_TEST.csv')
df_string = string_io.getvalue()

# save the string as bytes to with the writer
df_writer.write(df_string.encode('utf-8'))

# close the writer connection
df_writer.close()
0
Nono 25 अक्टूबर 2019, 07:17