के रूप में स्ट्रिंग्स के टुपल के साथ पांडस डेटाफ्रेम मैं कुछ अजीब pandas
व्यवहार को महसूस कर रहा हूं। मैं एक dataframe तरहइंडेक्स
df = pd.DataFrame(columns=['Col 1', 'Col 2', 'Col 3'],
index=[('1', 'a'), ('2', 'a'), ('1', 'b'), ('2', 'b')])
In [14]: df
Out[14]:
Col 1 Col 2 Col 3
(1, a) NaN NaN NaN
(2, a) NaN NaN NaN
(1, b) NaN NaN NaN
(2, b) NaN NaN NaN
मैं
In [15]: df['Col 2'].loc[('1', 'b')] = 6
In [16]: df
Out[16]:
Col 1 Col 2 Col 3
(1, a) NaN NaN NaN
(2, a) NaN NaN NaN
(1, b) NaN 6 NaN
(2, b) NaN NaN NaN
लेकिन जब मैं तत्व यह है कि मैं सिर्फ एक ही वाक्य रचना का उपयोग कर सेट संदर्भ में जाओ, मैं
प्राप्त एक मनमाना तत्व का मान सेट कर सकते हैं लग रहा है कि हैIn [17]: df['Col 2'].loc[('1', 'b')]
KeyError: 'the label [1] is not in the [index]'
क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं या यह व्यवहार क्यों होता है? क्या मुझे इंडेक्स को बहु-तत्व टुपल के रूप में सेट करने की अनुमति नहीं है?
संपादित
जाहिर है, एक सूची में टपल सूचकांक लपेटकर काम करता है।
In [38]: df['Col 2'].loc[[('1', 'b')]]
Out[38]:
(1, b) 6
Name: Col 2, dtype: object
हालांकि मुझे अभी भी मेरे वास्तविक उपयोग मामले में कुछ अजीब व्यवहार मिल रहा है, इसलिए यह जानना अच्छा होगा कि यह अनुशंसित उपयोग नहीं है या नहीं।
में [इस सवाल] (https://stackoverflow.com/questions/25476880/using-dataframe-ix-with-a-tuple-index-in-pandas) यह पता चलता है प्रतिक्रिया की सिफारिश नहीं कर रहा है ट्यूपल कुंजी और मल्टी इंडेक्स चयन के बीच अस्पष्टता का उपयोग कारण। –