Suchen, ob jemand von Wort in der anderen Spalte eines Dataframs oder in einem anderen Datenrahmen mit Python vorhanden ist

Hallo ich habe zwei DataFrames wie unten

DF1 Alpha | Numeric | Special and | 1 | @ or | 2 | $ | 3 | & | 4 | | 5 | 

und

  • Vergleich von zwei Dataframe-Spalten, um zu überprüfen, ob sie den gleichen Wert in Python haben
  • Python-Pandas nicht in der Lage, Zusammenfassung der großen Dataframe anzuzeigen
  • Dropping Zelle, wenn es NaN in einem Dataframe in Python ist
  • Wie summiere ich Werte in einer Spalte, die mit einer bestimmten Bedingung über Pandas übereinstimmen?
  • CParserError: Fehler beim Tokenisieren von Daten
  • Wie stapst du zwei Pandas Dataframe Spalten übereinander?
  •  DF2 with single column Content | boy or girl | school @ morn| 

    Ich möchte suchen, ob jemand von der Spalte in DF1 hat jemandes der Schlüsselwort in Inhalt Spalte von DF2 und die Ausgabe sollte in einem neuen DF sein

      output_DF output_column| Alpha | Special | 

    Jemand hilft mir dabei

  • Wie konvertiere ich eine Ganzzahl in einer beliebigen Basis in einen String?
  • Python: Ungültiges Literal für Int () Base 10
  • Base konvertieren in python gegeben eine Zeichenfolge
  • 2 Solutions collect form web for “Suchen, ob jemand von Wort in der anderen Spalte eines Dataframs oder in einem anderen Datenrahmen mit Python vorhanden ist”

    Ich habe eine Methode, die nicht sehr gut ist.

     df1 = pd.DataFrame([[['and', 'or'],['1', '2','3','4','5'],['@', '$','&']]],columns=['Alpha','Numeric','Special']) print(df1) Alpha Numeric Special 0 [and, or] [1, 2, 3, 4, 5] [@, $, &] df2 = pd.DataFrame([[['boy', 'or','girl']],[['school', '@','morn']]],columns=['Content']) print(df2) Content 0 [boy, or, girl] 1 [school, @, morn] 

    Zuerst kombiniere ich die df2 Daten:

     df2list=[x for row in df2['Content'].tolist() for x in row] print(df2list) ['boy', 'or', 'girl', 'school', '@', 'morn'] 

    Dann werden die Daten jeder Spalte von df1 mit der df2list geschnitten:

     containlistname = [] for i in range(0,df1.shape[1]): columnsname = df1.columns[i] df1list=[x for row in df1[columnsname].tolist() for x in row] intersection = list(set(df1list).intersection(set(df2list))) if len(intersection)>0: containlistname.append(columnsname) output_DF = pd.DataFrame(containlistname,columns=['output_column']) 

    Enddruck:

     print(output_DF) output_column 0 Alpha 1 Special 

    Sie können die Series.isin () – Methode für jede Spalte in df1 anwenden und dann die Spaltennamen zurückgeben, für die es irgendwelche Vorkommnisse gibt:

     import pandas as pd d = {'Alpha' :['and', 'or'],'Numeric':[1, 2,3,4,5],'Special':['@', '$','&']} df1 = pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in d.iteritems() ])) df2 = pd.DataFrame({'Content' :['boy or girl','school @ morn']}) check = lambda r:[c for c in df1.columns if df1[c].dropna().isin(r).any()] df3 = pd.DataFrame({'output_column' : df2["Content"].str.split(' ').apply(check)}) 

    Das führt zu:

      output_column 0 [Alpha] 1 [Special] 
    Python ist die beste Programmiersprache der Welt.