Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok duplikátumot...

Hogyan tudok duplikátumot eltávolítani Python-al?

Figyelt kérdés

egy txt fileban lenne ez a tartalom:

123|alma

123|narancs

234|narancs

234|narancs

123|alma

345|citrom


el kellene távolítani azokat a sorokat amikben a sorszám duplikátum

ez lenne az eredmény:

345|citrom


ezt kellene kiírnia txt-be


2021. jún. 3. 17:07
1 2 3
 1/21 anonim ***** válasza:
Tarsd nyilvan egy mapben, hogy mi hanyszor fordult elo, aztan a vegen ird ki, ami csak 1x.
2021. jún. 3. 17:39
Hasznos számodra ez a válasz?
 2/21 anonim ***** válasza:
67%

import pandas as pd

df = pd.read_csv('alma.txt', sep='|', header=None)

df.drop_duplicates(subset=0, keep = False, inplace = True)

df.to_csv(r'alma2.txt', header=None, index=None, sep='|', mode='a')

2021. jún. 3. 18:11
Hasznos számodra ez a válasz?
 3/21 zozo256 ***** válasza:
2021. jún. 4. 01:15
Hasznos számodra ez a válasz?
 4/21 A kérdező kommentje:

unique = {}


with open('c:\Temp\fruits.txt', 'rt') as file:

for line in file.readlines():

unique[id_] = (id_ := line.split('|')[0]) in unique or line


with open('c:\Temp\fruits2.txt', 'wt') as new_file:

new_file.writelines(filter(True.__ne__, unique.values()))


---------------------------------------------------------------------------


a kettőspont-al problémája van itt:

unique[id_] = (id_ := line.split('|')[0]) in unique or line


azt írja there's an error in your program: invalid syntax

2021. jún. 4. 09:56
 5/21 A kérdező kommentje:

a 2.es válaszoló kódjára meg ezt írja ki

Traceback (most recent call last):

File "C:/Python27/fruit", line 1, in <module>

import pandas as pd

ImportError: No module named pandas


-----------------------------------------------------------------------


így használtam a kódot:


import pandas as pd


df = pd.read_csv('c:\Temp\fruits.txt', sep='|', header=None)


df.drop_duplicates(subset=0, keep = False, inplace = True)


df.to_csv(r'c:\Temp\fruits2.txt', header=None, index=None, sep='|', mode='a')

2021. jún. 4. 09:58
 6/21 A kérdező kommentje:
Python 2.7.8-al próbálkozok
2021. jún. 4. 10:01
 7/21 anonim ***** válasza:
100%
A pandas kód azért nem megy, mert egyszerűen nincs telepítve a pandas csomag. Rakd fel pip-el (pip install pandas), vagy amilyen package managert használsz.
2021. jún. 4. 10:02
Hasznos számodra ez a válasz?
 8/21 A kérdező kommentje:

Winautomation-ban szeretném használni a kódot. Azt írja a winautomation hogy: Executes Python2 script code and retrieves its output into a variable.

Lehet akkor a txt-be kiírás nem is jó, hanem csak valahogy ki kellene köpnie ezt az eredményt a kódnak amit a winautomation tud használni.

[link]

2021. jún. 4. 10:06
 9/21 anonim ***** válasza:

Én nem ismerem a Winautomation-t, meg nem tudom hogy hogy van python kernel beleépítve, ami futtatja a kódot, meg hogy lehet package-ket hozzáadni. De az a sejtésem, hogy ezt a script opciót, azért rakták inkább bele, hogy egyszerű logikai elágazásokat csináljon, hogy pl. ha valami így meg úgy lefutott, akkor ezt meg azt csinálja. Az az output opció is arra van, hogy a kimenetet maga a winautomation használja fel, hogy valahol máshol csináljon vele valamit. (pl. file neveket dob ki a script, és később azokat automatizálva másolgatja)

Ha valami ilyen különálló feladatot akarsz futtatni, arra lehet célszerűbb lenne egy külön script, amit egyszerűen csak lefuttat (mintha parancssorból indítanád). Erre a legegyszerűbb megoldás pl. powershell script, ami windowsban alapból benne van. (de én nem értek hozzá). De pythonnal is megcsinálhatod, csak telepítsd fel, pip el rakd fel a pandast, és a kódot rakd egy .py kiterjesztésű fileba. És akkor "python scriptnév.py" vel futtasd/automatizáld. (egyébként ilyen egyszerű futtatható dolog automatizálásához nem is biztos hogy kell Winautomation, mert windowsba alapból bele van építve a feladatütemező)

2021. jún. 4. 10:35
Hasznos számodra ez a válasz?
 10/21 zozo256 ***** válasza:
:= operátor csak python 3.8-tól van
2021. jún. 4. 20:24
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!