मेरे पास इस तरह से पांडा के साथ आयात की गई एक स्प्रेडशीट है:

df = pd.read_excel('my_spreadsheet.xlsx',header = [0,1],index_col=0,sheetname='Sheet1')

Df.columns का आउटपुट है:

MultiIndex(levels=[[u'MR 1', u'MR 10', u'MR 11', u'MR 12', u'MR 13', u'MR 14', u'MR 15', u'MR 16', u'MR 17', u'MR 18', u'MR 19', u'MR 2', u'MR 20', u'MR 21', u'MR 22', u'MR 3', u'MR 4', u'MR 5', u'MR 6', u'MR 7', u'MR 8', u'MR 9'], [u'BIRADS', u'ExamDesc', u'completedDTTM']],
       labels=[[0, 0, 0, 11, 11, 11, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 12, 12, 12, 13, 13, 13, 14, 14, 14], [1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0]],
       names=[None, u'De-Identified MRN'])

मैं 'डी-आइडेंटिफाइड एमआरएन' नाम के कॉलम के मूल्यों तक पहुंचने की कोशिश कर रहा हूं, लेकिन ऐसा करने का तरीका नहीं ढूंढ पा रहा हूं।

मैंने जो कोशिश की है (समान पोस्ट के आधार पर):

[in] df.index.get_level_values('De-Identified MRN')

[out] KeyError: 'Level De-Identified MRN must be same as name (None)'

तथा

[in] df.index.unique(level='De-Identified MRN')

[out] KeyError: 'Level De-Identified MRN must be same as name (None)'

अद्यतन: निम्नलिखित ने किसी कारण से चाल चली। मैं वास्तव में मल्टीइंडेक्स पंडों डेटाफ्रेम के प्रारूप को नहीं समझता:

pd.Series(df.index)
3
hirschme 20 अगस्त 2018, 18:01
df.index.get_level_values(level=1)
 – 
YOBEN_S
20 अगस्त 2018, 18:04
1
आपका पहला दृष्टिकोण मेरे लिए काम करता है, जैसा कि आपका दूसरा दृष्टिकोण करता है
 – 
user3483203
20 अगस्त 2018, 18:05
वह लौटाता है: इंडेक्स त्रुटि: बहुत सारे स्तर: इंडेक्स में केवल 1 स्तर होता है, 2 नहीं
 – 
hirschme
20 अगस्त 2018, 18:08

2 जवाब

अपने डेटा का उपयोग करके

s="MultiIndex(levels=[[u'MR 1', u'MR 10', u'MR 11', u'MR 12', u'MR 13', u'MR 14', u'MR 15', u'MR 16', u'MR 17', u'MR 18', u'MR 19', u'MR 2', u'MR 20', u'MR 21', u'MR 22', u'MR 3', u'MR 4', u'MR 5', u'MR 6', u'MR 7', u'MR 8', u'MR 9'], [u'BIRADS', u'ExamDesc', u'completedDTTM']],labels=[[0, 0, 0, 11, 11, 11, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 12, 12, 12, 13, 13, 13, 14, 14, 14], [1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0]],names=[None, u'De-Identified MRN'])"
idx=eval(s, {}, {'MultiIndex': pd.MultiIndex})
df=pd.DataFrame(index=idx)
df.index.get_level_values(level=1) # df.index.get_level_values('De-Identified MRN')

Out[336]: 
Index(['ExamDesc', 'completedDTTM', 'BIRADS', 'ExamDesc', 'completedDTTM',
       'BIRADS', 'ExamDesc', 'completedDTTM', 'BIRADS', 'ExamDesc',...

इसके अलावा, अगर उपरोक्त सभी अभी भी काम नहीं करते हैं, तो कोशिश करें

df.reset_index()['De-Identified MRN']
2
YOBEN_S 20 अगस्त 2018, 18:09
मुझे आपकी पोस्ट में कोड के लिए समान आउटपुट मिलता है, लेकिन मुझे यकीन नहीं है कि क्या हो रहा है और आउटपुट वह नहीं है जो मैं चाहता हूं। मैं सिर्फ 'डी-आइडेंटिफाइड एमआरएन' नामक कॉलम के तहत संग्रहीत मूल्यों को पुनः प्राप्त करना चाहता हूं। एक सामान्य पांडा डेटाफ़्रेम में यह df['De-Identified MRN'] के साथ काम करेगा। मुझे बस एक मल्टीइंडेक्स एक के लिए एनालॉग की आवश्यकता है।
 – 
hirschme
20 अगस्त 2018, 18:17

निम्नलिखित का प्रयास करें:

midx = pd.MultiIndex(
    levels=[[u'MR 1', u'MR 10', u'MR 11', u'MR 12', u'MR 13', u'MR 14', u'MR 15', u'MR 16', u'MR 17', u'MR 18', u'MR 19', u'MR 2', u'MR 20', u'MR 21', u'MR 22', u'MR 3', u'MR 4', u'MR 5', u'MR 6', u'MR 7', u'MR 8', u'MR 9'], [u'BIRADS', u'ExamDesc', u'completedDTTM']],
    labels=[[0, 0, 0, 11, 11, 11, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 12, 12, 12, 13, 13, 13, 14, 14, 14], [1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0]],
    names=[None, u'De-Identified MRN']
)

midx.levels[1]  # returns the following
Index(['BIRADS', 'ExamDesc', 'completedDTTM'], dtype='object', name='De-Identified MRN')

midx.levels[1].values # returns the following
array(['BIRADS', 'ExamDesc', 'completedDTTM'], dtype=object)
0
jeschwar 20 अगस्त 2018, 18:15