Ich weiß, wie man Tabellen in Pandas auf verschiedene Arten verbindet - concat, merge, etc. aber ich würde gerne wissen, wie man das auch mit Pandasql macht. Insbesondere möchte ich zwei Pandas Datenrahmen auf dem Index verbinden. Ist das möglich? Wenn ich macheWie verbinde ich zwei Pandas Datenrahmen in Pandasql mit dem Index?
new_df = pysqldf("SELECT a.*, b.list3 from df1 as a INNER JOIN df2 as b ON a.key=b.key;")
Ich bekomme das richtige Ergebnis. (Ich habe einen „Schlüssel“ Variable auf beiden Tabellen.) Aber wenn ich versuche,
new_df = pysqldf("SELECT a.*, b.list3 from df1 as a INNER JOIN df2 as b ON a.index=b.index;")
ich
---------------------------------------------------------------------------
PandaSQLException Traceback (most recent call last)
<ipython-input-154-ecab230d4dc9> in <module>()
----> 1 new_df = pysqldf("SELECT a.*, b.list3 from df1 as a INNER JOIN df2 as b ON a.index=b.index;")
<ipython-input-100-adc122e97ed8> in <lambda>(q)
1 from pandasql import sqldf
----> 2 pysqldf = lambda q: sqldf(q, globals())
/Users/jwesley/anaconda/lib/python2.7/site-packages/pandasql/sqldf.pyc in sqldf(query, env, db_uri)
154 >>> sqldf("select avg(x) from df;", locals())
155 """
--> 156 return PandaSQL(db_uri)(query, env)
/Users/jwesley/anaconda/lib/python2.7/site-packages/pandasql/sqldf.pyc in __call__(self, query, env)
61 result = read_sql(query, conn)
62 except DatabaseError as ex:
---> 63 raise PandaSQLException(ex)
64 except ResourceClosedError:
65 # query returns nothing
PandaSQLException: (sqlite3.OperationalError) near "index": syntax error [SQL: 'SELECT a.*, b.list3 from df1 as a INNER JOIN df2 as b ON a.index=b.index;']