मेरे द्वारा उपयोग किए जाने के बाद, दो डेटासेट हैं

पहला वाला: data_df उस तरह:

          0      1      2      3      4      5
0  sample_0  0.592  0.000  7.215  6.620  0.000
1  sample_1  0.000  0.000  9.950  1.175  0.000
2  sample_2  1.683  3.660  6.097  7.681  0.000
3  sample_3  1.267  0.000  3.914  6.469  0.000

दूसरा वाला:labels_df उस तरह:

   sampleid Class
0  sample_0  PRAD
1  sample_1  LUAD
2  sample_2  PRAD
3  sample_3  PRAD
4  sample_4  BRCA
5  sample_5  PRAD

मैं एक ही नमूना नाम से दो डेटासेट मर्ज करना चाहता हूं और लेबल डेटासेट में नमूना_4 और नमूना_5 पंक्ति को हटाना चाहता हूं, इसलिए मैंने यह कोशिश की:

merge_df = pd.merge(labels_df, data_df, left_on='sampleid', right_on='0', how='inner') 

लेकिन यह त्रुटि दिखाता है:

Exception has occurred: KeyError
'0'

तो इसे कैसे हल करें?

0
4daJKong 2 जून 2020, 10:58

1 उत्तर

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

चुनिंदा संख्यात्मक कॉलम के लिए 0 का प्रयोग करें 0, '0' स्ट्रिंग कॉलम के लिए उपयोग किया जाता है, how='inner' डिफ़ॉल्ट रूप से है, इसलिए छोड़ा जाना चाहिए, डुप्लिकेट को हटाने के लिए भी DataFrame.drop_duplicates:

data_df = data_df.drop_duplicates(0)
labels_df = labels_df.drop_duplicates('sampleid')

merge_df = pd.merge(labels_df, data_df, left_on='sampleid', right_on=0)
2
jezrael 2 जून 2020, 08:35