WebHU - Programozási kérdések és válaszok

Pandák, távolítsa el a duplikációkat oszlop szerint, amelyek N-szer ismétlődnek [duplikáció]

Itt egy példa:

df = pd.DataFrame({
    'file': ['file1','file1','file1','file1','file2','file3','file4','file4','file4','file4'],
    'text': ['Text1','Text2','Text3','Text4','Text5','Text6','Text7','Text8','Text9','Text10'],
})

El kell távolítanom azokat a sorokat, amelyek a "fájl" négyszer ismétlődnek, ezért ebben a példában el kell távolítanom azokat a sorokat, ahol a fájl = fájl1 és fájl4

24.10.2019


Válaszok:


1

Használja a GroupBy.transform az értékek csoportonkénti számának megtekintéséhez, ezért lehetséges a szűrés a következő szerint: boolean indexing:

df1 = df[df.groupby('file')['file'].transform('size') != 4]

Magyarázat: A transform használatához meg kell adni néhány oszlopot a groupby után a számláláshoz - ha a size értéket használja, akkor ugyanúgy működik, ha a DataFrame bármelyik oszlopát használja, és új oszlopot (Series) ad vissza, ugyanolyan méretű, mint az eredeti DataFrame, számlálással kitöltve:

print (df.groupby('file')['file'].transform('size'))
0    4
1    4
2    4
3    4
4    1
5    1
6    4
7    4
8    4
9    4
Name: file, dtype: int64

Vagy használja a DataFrameGroupBy.filter - a teljesítménynek lassabbnak kell lennie, ha nagy adatmennyiség:

df1 = df.groupby('file').filter(lambda x: len(x) != 4)

Vagy Series.map az Series.value_counts:

df1 = df[df['file'].map(df['file'].value_counts()) != 4]

print (df)
    file   text
4  file2  Text5
5  file3  Text6
24.10.2019
  • Meg tudnád magyarázni egy kis első változathoz, kérlek, hogyan működik ez, különösen a ('file)['file']? 24.10.2019
  • @Contra111 - adj egy percet, magyarázat lesz hozzá. 24.10.2019

  • 2

    GroupBy és transform használata:

    df[df.groupby('file').text.transform('size').ne(4)]
    
       file   text
    4  file2  Text5
    5  file3  Text6
    
    24.10.2019
    Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..