Ինչպե՞ս արգելել կրկնօրինակ պիտակները Pandas DataFrame-ում:
Լռելյայնորեն, Pandas-ը թույլ է տալիս կրկնօրինակել պիտակները DataFrame-ում: Այնուամենայնիվ, դա կարող է խնդիրներ առաջացնել, քանի որ Pandas-ի որոշ մեթոդներ չեն աշխատի, եթե DataFrame-ում կրկնօրինակներ կան: Այս հոդվածում մենք կտեսնենք, թե ինչպես կարելի է պանդաներին թույլ չտալ կրկնօրինակ պիտակներ կամ բռնել դրանք հավաքման պահին:
Օրինակ
Նայեք հետևյալ կոդը. Մենք ունենք DataFrame երկու սյունակներով, որոնք ունեն նույն սյունակի անունը «Անուն»: Այդուհանդերձ, պանդաները կարտադրեն անհրաժեշտ արդյունքը առանց որևէ խնդիրների:
import pandas as pd
df = pd.DataFrame(
[
['John', 89, 'Maths'],
['Jacob', 23, 'Physics'],
['Tom', 100, 'Chemistry']],
columns=['Name', 'Name', 'Subjects'])
print("Input DataFrame is:\n", df)
Արդյունք
Այն կստեղծի հետևյալ արդյունքը −
Input DataFrame is:
Name Name Subjects
0 John 89 Maths
1 Jacob 23 Physics
2 Tom 100 Chemistry
Այժմ տեսնենք, թե ինչպես կարելի է կանխել պանդաներին կրկնօրինակ պիտակները թույլ չտալ:
Մենք կարող ենք օգտագործել .set_flags(allows_duplicate_labels=False) որը ավտոմատ կերպով կհայտնաբերի կրկնօրինակ պիտակները DataFrame-ում և սխալ կթողնի:
Այժմ գործարկեք նույն կոդը՝ allows_duplicate_labels սահմանելով False, և այն սխալներ կառաջացնի −
import pandas as pd
df = pd.DataFrame(
[
['John', 89, 'Maths'],
['Jacob', 23, 'Physics'],
['Tom', 100, 'Chemistry']],
columns=['Name', 'Name', 'Subjects']
).set_flags(allows_duplicate_labels=False)
print("Input DataFrame is:\n", df)
Այժմ այն կբռնի կրկնօրինակ պիտակները և կառաջացնի հետևյալ սխալը −
pandas.errors.DuplicateLabelError: Index has duplicates.
label positions
Name [0, 1]