मेरे पास एक पांडा डेटाफ़्रेम है, df, जिसे मैं एक डस्क डेटाफ़्रेम में बदल देता हूँ, dask_df:

import pandas as pd
import dask.dataframe as dd
df = pd.DataFrame.from_dict({'col1':[1,2,3], 'col2':[2,3,4]})
dask_df = dd.from_pandas(df, npartitions=1)

मैं dask_df की अनुक्रमणिका को वापस एक पांडा डेटाफ़्रेम में बदलने के बाद निरीक्षण करता हूँ और देखता हूँ:

dask_df.compute().index # RangeIndex(start=0, stop=3, step=1)

हालांकि, अगर मैं अपने डस्क डेटाफ्रेम को लकड़ी की छत पर लिखता हूं और फिर इसे लकड़ी की छत से एक डस्क डेटाफ्रेम में पढ़ता हूं, तो सूचकांक अब सहमत नहीं होते हैं:

dask_df.to_parquet('dask_df.pq', write_index=True)
test_df = dd.read_parquet('dask_df.pq')
test_df.compute().index #Int64Index([0, 1, 2], dtype='int64', name='index')

मैं अपने डस्क डेटाफ्रेम (केवल एक विभाजन) को लकड़ी की छत पर लिखने में सक्षम होना चाहता हूं, इसे लकड़ी की छत से पढ़ना चाहता हूं, और उसी इंडेक्स के साथ मूल डस्क डेटाफ्रेम प्राप्त करना चाहता हूं। मैं यहाँ क्या गलत कर रहा हूँ पर कोई विचार?

धन्यवाद!

1
anon_swe 17 सितंबर 2019, 02:31

1 उत्तर

ऐसा लगता है कि आपने जो प्रदान किया है और जो आपको वापस मिला है, उसके बीच दो अंतर हैं:

  1. नाम None से बदलकर "index" कर दिया गया है
  2. प्रकार [0, 1, 2] मानों के साथ रेंजइंडेक्स से बदल गया है और मूल्यों के साथ Int64Index टाइप करने के लिए [0, 1, 2]

दोनों ही मामलों में ऐसा इसलिए है क्योंकि Parquet ये विकल्प प्रदान नहीं करता है। सभी स्तंभों को Parquet फ़ाइल स्वरूप में टेक्स्ट नामों के साथ नामित किया जाना चाहिए, और उनमें टाइप किए गए स्तंभों की कोई धारणा नहीं है।

0
MRocklin 21 सितंबर 2019, 03:49