Pandas, warum stoppt der String-Abgleich beim ersten Buchstaben?

user12177026

Ich habe eine Reihe, die Unternehmen enthält und deren Aktiennamen verbunden sind:

                             stock

0                            AAPLApple
1                       AMZNAmazon.com
2                           FBFacebook
3                          NFLXNetflix
4                            INTCIntel
5                            TSLATesla
6                  MUMicron Technology
7                        MSFTMicrosoft
8                           NVDANVIDIA
9                    CSCOCisco Systems
11             LULULululemon Athletica
12                            EBAYeBay
13                        AVGOBroadcom
14                        QCOMQUALCOMM
15                 GILDGilead Sciences
16                  WDCWestern Digital
17                       GOOGLAlphabet
18                          BIIBBiogen
19                        GOOGAlphabet
20                URBNUrban Outfitters
21                          NTAPNetApp
22                          AABAAltaba
23                       SBUXStarbucks
24                         CELGCelgene
25                          SPLKSplunk
26                COSTCostco Wholesale
27           AMDAdvanced Micro Devices
28                          PYPLPaypal
29       REGNRegeneron Pharmaceuticals
30               AMATApplied Materials
                    ...               
Name: stock, Length: 243, dtype: object

Ich habe auch eine Liste der Aktiensymbole, mit denen ich übereinstimmen kann:

['ETSY',
 'COUP',
 'TSLA',
 'CRWD',
 'ROKU',
 'A',
 'AAL',
 'AAP',
 'AAPL',
 'ABBV',
 'AEP',
 'AES',
 'AFL',
 'HUBS',
 'AIG',
 'AIV',
 'AIZ',
 'AJG',
 'AKAM',
 'ALB',
 'ALGN',
 'ALK',
 'ALL',
 'ALLE',
 'ALXN',
 'AMAT',
 'AMCR',
 'AMD',
 'AME',
 'AMGN',
 'AMP',
 'AMT',
 'AMZN',
...]

Ich möchte übereinstimmen, um jeden Namen in der Aktienspalte des vollständigen Firmennamens zu entfernen und nur das Symbol zu belassen. Wenn das Symbol nicht gefunden wird, lassen Sie die Zeile fallen. Mein Code bisher:

def clean_name(name):
    companies = list(COMPANIES.keys())
    for company in companies:
        if company in name:
            return company
        return None
def sort_df():
    df[STOCK] = df[STOCK].apply(lambda x: clean_name(x))
    df = df.dropna()
    return df

Das Problem ist, dass jede Übereinstimmung von Zeichenfolgen in den meisten Fällen nur einen Buchstaben zurückgibt.

Die Ausgabe lautet also:

0         A
1         A
2         F
3         F
4         C
5      TSLA
6        MU
7         F
8         A
9         C
11        A
12        A
13        A
14        A
15        D
16        C
17        A
18     BIIB
19        A
20        O
21        A
22        A
23     SBUX
24        C
25     SPLK
26        C
27        A
28        L
29       RE
30        A
...
Jezreel

Eine Idee ist die umgekehrte Sortierung nach Länge für die ersten längsten Firmennamen:

def clean_name(name):
    companies = list(COMPANIES.keys())
    for company in sorted(companies, key=len, reverse=True):
        if company in name:
            return company
    return None

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Regulärer Ausdruck, der beim ersten gefundenen Buchstaben stoppt

JavaScript-Filter, der beim ersten Ergebnis stoppt

Der Regex-Abgleich muss beim ersten Auftreten der Dateierweiterung gestoppt und der Rest ignoriert werden

Warum stoppt der Linux-Kernel nicht beim ersten Handler für einen gemeinsam genutzten IRQ, der IRQ_HANDLED zurückgibt?

Warum die Kette von flatMap beim ersten linken Wert stoppt, aber beim rechten Wert fortgesetzt wird

Warum stoppt MediaPlayer beim Neustart der App in Android?

Schaben stoppt in der ersten Zeile

Probleme beim Abgleich der Prologliste

Warum jede Schleife in einer Jenkins-Datei bei der ersten Iteration stoppt

Warum stoppt Keras in der ersten Epoche, wenn ich versuche, es mit fit_generator zu trainieren?

Warum stoppt die while-Schleife in diesem Bash-Skript nach der ersten Zeile?

Wie stoppt man WO beim ersten Auftreten?

Regex stoppt beim ersten doppelten Anführungszeichen

Perl Globbing a Variable stoppt beim ersten Spiel

Die Umschreibregel htaccess stoppt beim ersten Auftreten

Makefile stoppt das Erstellen von Dateien nach dem ersten .o beim Erstellen außerhalb der Quelle

Der Pyramid-Server stoppt beim ersten Aufruf, wenn er mit pydev ausgeführt wird

Verhindert, dass die Funktion nicht beim ersten "Return" innerhalb der "for" -Schleife stoppt

Python: for-Schleife stoppt in der ersten Zeile beim Lesen von csv

Warum werden nur die ersten Buchstaben der Wörter gedruckt und nicht alle Buchstaben aus der Datei?

Stoppen Sie beim ersten Abgleich in einer SQLite-Abfrage

Warum funktioniert der Übergang beim ersten Klick nicht?

setInterval stoppt nach der ersten Instanz

Schleife stoppt nach der ersten Iteration?

Foreach () {} stoppt nach der ersten Zeile

Webcrawler stoppt auf der ersten Seite

Warum zeigt printf nur den ersten Buchstaben an?

Warum trim() den ersten Buchstaben entfernt, wenn er sich im URL-String php befindet?

Warum stoppt das Scrollen beim Scrollen an der reduzierten Symbolleiste? (Nicht erweitern, um Bild anzuzeigen)

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv