इसके अतिरिक्त @ ajcr उत्तम जवाब देने के लिए, आप उलटफेर आप अपने डेटा को संग्रह करने पर विचार करना चाहते हो सकता है।
इस समय आप अलग-अलग कॉलम में विभिन्न नमूनों के साथ ऐसा कर रहे हैं, जिस तरह से आप स्प्रेडशीट का उपयोग कर रहे थे, लेकिन यह आपके डेटा का प्रतिनिधित्व करने का सबसे सहायक तरीका नहीं हो सकता है।
आम तौर पर, प्रत्येक कॉलम के बारे में जानकारी का एक अद्वितीय टुकड़ा दर्शाता है जो एक वास्तविक वास्तविक इकाई है। इस प्रकार का डेटा का विशिष्ट उदाहरण एक व्यक्ति है:
id name hair_colour Age
1 Bob Brown 25
वास्तव में, अपने विभिन्न नमूनों विभिन्न वास्तविक दुनिया संस्थाओं हैं।
इसलिए मैं सूचना के प्रत्येक टुकड़े का वर्णन करने के लिए दो-स्तर की अनुक्रमणिका रखने का सुझाव दूंगा। यह आपके डेटा को उस तरीके से जोड़ता है जिस तरह से आप अधिक सुविधाजनक चाहते हैं।
इस प्रकार
:
>>> df = pd.DataFrame([['Sn',1,2,3],['Pb',2,4,6]],
columns=['element', 'A', 'B', 'C']).set_index('element')
>>> df.columns.name = 'sample'
>>> df # This is how your DataFrame looks at the moment
sample A B C
element
Sn 1 2 3
Pb 2 4 6
>>> # Now make those columns into a second level of index
>>> df = df.stack()
>>> df
element sample
Sn A 1
B 2
C 3
Pb A 2
B 4
C 6
अब हम अपने निपटान में groupby
के सभी स्वादिष्ट कार्यक्षमता है:
>>> demean = lambda x: x - x.mean()
>>> df.groupby(level='element').transform(demean)
element sample
Sn A -1
B 0
C 1
Pb A -2
B 0
C 2
आप इस तरह से अपने डेटा जब देखते हैं, तो आपको लगता है कि कई, कई मिल जाएगा मल्टी-कॉलम DataFrames
होने के लिए उपयोग किए जाने वाले मामलों का उपयोग वास्तव में मल्टीइन्डेक्स Series
है, और आपके पास डेटा का प्रतिनिधित्व और रूपांतरण कैसे किया जाता है, इस पर अधिक शक्ति है।
मुझे लगता है कि धुरी वास्तव में भ्रमित है। उदाहरण के लिए, 'अक्ष = 1' का अर्थ पंक्ति-वार औसत प्राप्त करना है, हालांकि,' अक्ष = 1' का अर्थ कॉलम के अनुसार घटाना है, क्या मैं इस परंपरा को गलत समझ रहा हूं कि अक्ष का उपयोग कैसे करें? –
@ बीएमआर।मैं मानता हूं कि यह बहुत भ्रमित हो सकता है (मैं नियमित रूप से अटक जाता हूं और न्यूमपी/पांडस से निपटने के दौरान अक्ष संख्याओं के साथ खेलना पड़ता हूं)। असल में, 'अक्ष = 1' का अर्थ केवल "डेटाफ्रेम पर" है। इसका मतलब पंक्ति में प्रविष्टियां हो सकती हैं (जैसा कि 'df.mean (axis = 1) ') में है, या, चूंकि कॉलम के नाम भी डेटाफ्रेम पर जाते हैं, इसलिए' अक्ष = 1' का उपयोग तब किया जाता है जब कॉलम नामों को संदर्भित करने की आवश्यकता होती है सेवा मेरे। मुझे लगता है कि स्टैक ओवरफ्लो पर इस विषय के बारे में कुछ प्रश्न हैं, जिनमें से एक मैंने जवाब दिया [http://stackoverflow.com/a/25774395/3923281)। –