2013-08-17 12 views
13

मैं पांडा डेटा फ्रेम में इंडेक्स को कैसे छोड़ या अक्षम कर सकता हूं?अक्षम इंडेक्स पांडा डेटा फ्रेम

मैं "डेटा विश्लेषण के लिए पायथन" पुस्तक से पांडा सीख रहा हूं और मुझे पहले से ही पता है कि मैं डेटा कॉलम.drop का उपयोग एक कॉलम या एक पंक्ति को छोड़ने के लिए कर सकता हूं। लेकिन मुझे सभी सूचकांकों को अक्षम करने के बारे में कुछ भी नहीं मिला।

उत्तर

10

df.values आपको इंडेक्स के बिना कच्चे NumPy ndarray देता है।

>>> df.values is df.values 
False 
:

>>> df 
    x y 
0 4 GE 
1 1 RE 
2 1 AE 
3 4 CD 
>>> df.values 
array([[4, 'GE'], 
     [1, 'RE'], 
     [1, 'AE'], 
     [4, 'CD']], dtype=object) 

आप अनुक्रमित के बिना एक DataFrame नहीं हो सकता है, वे DataFrame :)

लेकिन अभी स्पष्ट होना, इस आपरेशन inplace नहीं है के पूरे मुद्दे हैं

डेटाफ्रेम डेटा को दो आयामी सरणी प्रकार में समूहित करता है, इसलिए जब आप संपूर्ण डेटा फ्रेम चाहते हैं तो उसे सभी प्रकार के एलसीडी को ढूंढना होगा और उस प्रकार की 2 डी सरणी बनाना होगा।

वर्ष एक से मूल्यों के साथ एक नया डेटा फ्रेम का दृष्टांत के लिए, बस नए लोगों को निर्माता के लिए पुराने DataFrame गुजरती हैं और कोई डेटा एक ही डाटा संरचनाओं दोबारा इस्तेमाल किया जाएगा कॉपी किए जाएंगे:

>>> df1 = pd.DataFrame([[1, 2], [3, 4]]) 
>>> df2 = pd.DataFrame(df1) 
>>> df2.iloc[0,0] = 42 
>>> df1 
    0 1 
0 42 2 
1 3 4 

लेकिन आप स्पष्ट रूप से copy पैरामीटर निर्दिष्ट कर सकते हैं:

>>> df1 = pd.DataFrame([[1, 2], [3, 4]]) 
>>> df2 = pd.DataFrame(df1, copy=True) 
>>> df2.iloc[0,0] = 42 
>>> df1 
    0 1 
0 1 2 
1 3 4 
+0

धन्यवाद:

writer = pd.ExcelWriter(type_box + '-rules_output-' + date_string + '.xlsx',engine='xlsxwriter') 

हम lines नामक एक सूची है। मैंने जो किया वह पुराने डेटाफ्रेम के मानों के साथ एक नया डेटाफ्रेम शुरू करना है। – GeauxEric

+1

उत्तर अपडेट किया गया। –

+0

मुझे लगता है कि मैं वास्तव में क्या करना चाहता हूं, डेटा को इंडेक्स के बिना फ़ाइल में लिखना है, और इसे आसानी से इंडेक्स = गलत सेट करके किया जा सकता है। क्षमा करें मैंने अपना प्रश्न पहले स्थान पर स्पष्ट नहीं किया था। आपका जवाब बहुत सहज है। – GeauxEric

0

मैं एक समारोह है कि कुछ मदद मिल सकती है है। मैं अजगर में निम्नलिखित तरीके से एक हेडर के साथ csv फ़ाइलें गठबंधन:

def combine_csvs(filedict, combined_file): 
     files = filedict['files'] 
     df = pd.read_csv(files[0]) 
     for file in files[1:]: 
      df = pd.concat([df, pd.read_csv(file)]) 
     df.to_csv(combined_file, index=False) 
     return df 

यह रूप में कई फ़ाइलों के रूप में आप की जरूरत ले जा सकते हैं। के रूप में इस कॉल करें:

combine_csvs(dict(files=["file1.csv","file2.csv", "file3.csv"]), 'output.csv') 

या यदि आप के रूप में अजगर में dataframe पढ़ रहे हैं:

df = combine_csvs(dict(files=["file1.csv","file2.csv"]), 'output.csv') 

combine_csvs fucntion सूचकांक बचाने नहीं करता है। यदि आपको सूचकांक की आवश्यकता है तो इसके बजाय 'index = True' का उपयोग करें।

0
d.index = range(len(d)) 

एक सरल यथा-स्थान सूचकांक रीसेट हो जाता है - जो कि यह मौजूदा सूचकांकों के सभी निकाल देता है, और एक बुनियादी पूर्णांक एक, सबसे बुनियादी सूचकांक एक पांडा Dataframe हो सकता है टाइप है जो कहते हैं।

1

मुझे एक समान समस्या थी जो डेटाफ्रेम को इंडेक्स-कम सीएसवी से लेने और इसे दूसरी फ़ाइल में लिखने की कोशिश कर रहा था।

import pandas as pd 
import os 

def csv_to_df(csv_filepath): 
    # the read_table method allows you to set an index_col to False, from_csv does not 
    dataframe_conversion = pd.io.parsers.read_table(csv_filepath, sep='\t', header=0, index_col=False) 
    return dataframe_conversion 

def df_to_excel(df): 
    from pandas import ExcelWriter 
    # Get the path and filename w/out extension 
    file_name = 'foo.xlsx' 
    # Add the above w/ .xslx 
    file_path = os.path.join('some/directory/', file_name) 
    # Write the file out 
    writer = ExcelWriter(file_path) 
    # index_label + index are set to `False` so that all the data starts on row 
    # index 1 and column labels (called headers by pandas) are all on row index 0. 
    df.to_excel(writer, 'Attributions Detail', index_label=False, index=False, header=True) 
    writer.save() 
0

ही, यदि आप, आप अपने मानकों में index=False वहाँ निर्दिष्ट कर सकते हैं एक pd.ExcelWriter की df.to_excel समारोह है, जो जहां यह एक एक्सेल वर्कशीट में लिखा है प्रयोग कर रहे हैं:

मैं निम्नलिखित के साथ आया था ।

एक्सेल लेखक बनाने के लिए:

# create a dataframe called 'df' 
df = pd.DataFrame([sub.split(",") for sub in lines], columns=["Rule", "Device", "Status"])) 

#convert df to Excel worksheet 
df.to_excel(writer, sheet_name='all_status',**index=False**) 
writer.save() 
संबंधित मुद्दे