python处理dataframe如何像sql语句一样获得select id,did,money from t1 join (select id,did,name from t2 where fname=2) t2 on t1.id=t2.id and t1.did=t2.did
时间: 2024-02-01 12:04:09 浏览: 68
对python dataframe逻辑取值的方法详解
在Python的pandas库中,可以使用merge函数来实现类似于SQL语句中JOIN的操作。具体实现方法如下:
```python
import pandas as pd
# 创建示例数据
data1 = {'id': [1, 2, 3, 4], 'did': [1, 2, 3, 4], 'money': [100, 200, 300, 400]}
data2 = {'id': [1, 2, 3, 4], 'did': [1, 2, 3, 4], 'name': ['a', 'b', 'c', 'd'], 'fname': [1, 2, 2, 1]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# 使用merge函数进行JOIN操作
df3 = pd.merge(df1, df2[df2['fname'] == 2][['id', 'did', 'name']], on=['id', 'did'])
# 选择指定列
df4 = df3[['id', 'did', 'money']]
# 输出结果
print(df4)
```
在上述示例中,我们首先创建了两个DataFrame对象df1和df2,分别表示两个表。然后,使用merge函数对这两个表进行JOIN操作,其中df2[df2['fname'] == 2][['id', 'did', 'name']]表示选择df2表中fname列等于2的行,并且只选择id、did和name三列。最后,通过选择指定列的方法,得到了SELECT id,did,money from t1 join (select id,did,name from t2 where fname=2) t2 on t1.id=t2.id and t1.did=t2.did的结果。
阅读全文