Я читал сравнение SQL и Pandas на веб-сайте http://pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html. Здесь, когда я делал sql inner join, имена столбцов повторялись.Как дать им соответствующие имена?
import numpy as np
import pandas as pd
import sqlite3
np.random.seed(100)
# database
con = sqlite3.connect("mydb.db")
# dataframes
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value': np.random.randn(4)})
df2 = pd.DataFrame({'key': ['B', 'D', 'D', 'E'],
'value': np.random.randn(4)})
print(df1, '\n\n', df2)
# add dataframes to database
df1.to_sql('df1',con,if_exists='replace',index=False)
df1.to_sql('df2',con,if_exists='replace',index=False)
q = """
SELECT *
FROM df1
INNER JOIN df2
ON df1.key = df2.key;
"""
pd.read_sql_query(q,con)
Это дает
key value key value
0 B 0.342680 B 0.981321
1 D -0.252436 D 0.221180
2 D -0.252436 D 0.514219
Как получить таблицу типа:
key df1_value df2_value
0 B 0.342680 0.981321
1 D -0.252436 0.514219
2 D -0.252436 0.221180