मुझे अपनी सीएसवी फ़ाइल से कुछ डेटा फ़िल्टर करने और परिणामों को सहेजने की आवश्यकता है।

मैं यह कर रही हूँ,

from pandas import read_csv, DataFrame

df = read_csv('results.csv')

df = df.groupby(['LR', 'Optimizer', 'Activation', 'Drop rate', 'Epochs','Batch size']).mean()
df = df.drop(['kFold'],1)
df = df.drop(['Train time (segs)'],1)
df = df.drop(['T Loss','T Acc (%)', 'T Prec (%)', 'T Recall (%)', 'VN', 'FN', 'FP', 'VP'],1)
df = df.sort_values(by=['VP (%)'], ascending=False)

df.head(50)

और यह गूगल कोलैबोरेटरी में इस तरह दिखता है,

enter image description here

लेकिन अब, यदि मैं डेटा सहेजता हूं, df.to_csv('res.csv', index=None, header=True), तो मैं सभी groupby() कॉलम खो देता हूं। चित्र (या समान) के रूप में एक सीएसवी फ़ाइल प्राप्त करने के लिए मैं इसे कैसे कर सकता हूं? हेडर पर इन दो "चरणों" को केवल एक में जोड़ना संभव है?

आपका बहुत बहुत धन्यवाद!

0
Lleims 29 अक्टूबर 2020, 16:05

2 जवाब

सबसे बढ़िया उत्तर

आपको या तो index=True सेट करना होगा:

df.to_csv('res.csv', index=True, header=True)

या आप उपयोग करके सहेजने से पहले अनुक्रमणिका को रीसेट कर सकते हैं:

df.reset_index().to_csv('res.csv', index=None, header=True)
1
James 29 अक्टूबर 2020, 16:08

मुझे लगता है कि फ़ाइल में MultiIndex की आवश्यकता होने पर आपको index=False को हटाने की आवश्यकता है:

df = df.groupby(['LR', 'Optimizer', 'Activation','Drop rate', 'Epochs','Batch size']).mean()

df.to_csv('res.csv', header=True)

या MultiIndex को कॉलम में कनवर्ट करें और index=None पैरामीटर का उपयोग करें डिफ़ॉल्ट को छोड़ दें RangeIndex:

df = df.groupby(['LR', 'Optimizer', 'Activation','Drop rate', 'Epochs','Batch size'], as_index=False).mean()
#alternative
#df = df.groupby(['LR', 'Optimizer', 'Activation', 'Drop rate', 'Epochs','Batch size'].mean().reset_index()

df.to_csv('res.csv', index=None, header=True)
1
jezrael 29 अक्टूबर 2020, 16:08