En Pandas DataFrame, puedo usar la función DataFrame.isin() para hacer coincidir los valores de la columna con otra columna.
Por ejemplo: supongamos que tenemos un DataFrame:
df_A = pd.DataFrame({'col1': ['A', 'B', 'C', 'B', 'C', 'D'], 'col2': [1, 2, 3, 4, 5, 6]}) df_A col1 col2 0 A 1 1 B 2 2 C 3 3 B 4 4 C 5 5 D 6y otra trama de datos:
df_B = pd.DataFrame({'col1': ['C', 'E', 'D', 'C', 'F', 'G', 'H'], 'col2': [10, 20, 30, 40, 50, 60, 70]}) df_B col1 col2 0 C 10 1 E 20 2 D 30 3 C 40 4 F 50 5 G 60 6 H 70 Puedo usar la función .isin() para hacer coincidir los valores de columna de df_B con los valores de columna de df_A
P.ej:
df_B[df_B['col1'].isin(df_A['col1'])]rendimientos:
col1 col2 0 C 10 2 D 30 3 C 40¿Cuál es la operación equivalente en PySpark DataFrame?
df_A = pd.DataFrame({'col1': ['A', 'B', 'C', 'B', 'C', 'D'], 'col2': [1, 2, 3, 4, 5, 6]}) df_A = sqlContext.createDataFrame(df_A) df_B = pd.DataFrame({'col1': ['C', 'E', 'D', 'C', 'F', 'G', 'H'], 'col2': [10, 20, 30, 40, 50, 60, 70]}) df_B = sqlContext.createDataFrame(df_B) df_B[df_B['col1'].isin(df_A['col1'])] El código .isin() anterior me da un mensaje de error:
u'resolved attribute(s) col1#9007 missing from col1#9012,col2#9013L in operator !Filter col1#9012 IN (col1#9007);;\n!Filter col1#9012 IN (col1#9007)\n+- LogicalRDD [col1#9012, col2#9013L]\n'Este tipo de operación se llama semi-unión izquierda en chispa:
df_B.join(df_A, ['col1'], 'leftsemi')