나는 pandas - concat, merge 등 다양한 방법으로 테이블을 조인하는 방법을 알고 있지만 pandasql을 사용하여 이것을 수행하는 방법을 알고 싶습니다. 특히, 나는 인덱스에 두 개의 판다 데이터 프레임을 합류하고 싶습니다. 이것이 가능한가? 내가 할 때인덱스를 사용하여 pandasql에서 두 개의 pandas 데이터 프레임을 결합하는 방법은 무엇입니까?
new_df = pysqldf("SELECT a.*, b.list3 from df1 as a INNER JOIN df2 as b ON a.key=b.key;")
나는 정확한 결과를 얻습니다. (나는 두 테이블의 "키"변수가 있습니다.) 그러나, 나는
new_df = pysqldf("SELECT a.*, b.list3 from df1 as a INNER JOIN df2 as b ON a.index=b.index;")
시도 난 그냥 df1.index.rename('foo', inplace=True)
은 다음 'foo'
라는 이름의 열을 기준으로 인덱스를 참조 할 수 있습니다 인덱스의 이름을
---------------------------------------------------------------------------
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;']