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

  • CParserError: Fehler beim Tokenisieren von Daten
  • Wie man die gesamte Spalte entfernt, wenn eine bestimmte Zeile doppelte Werte in einem Dataframe in Python hat
  • Wie summiere ich Werte in einer Spalte, die mit einer bestimmten Bedingung über Pandas übereinstimmen?
  • Python-Pandas nicht in der Lage, Zusammenfassung der großen Dataframe anzuzeigen
  • Wie stapst du zwei Pandas Dataframe Spalten übereinander?
  • Dropping Zelle, wenn es NaN in einem Dataframe in Python ist
  •  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

  • Python: Ungültiges Literal für Int () Base 10
  • Base konvertieren in python gegeben eine Zeichenfolge
  • Wie konvertiere ich eine Ganzzahl in einer beliebigen Basis in einen String?
  • 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.