2016-08-21 45 views
1

我有一个pd.dataframe与以下字段:id, value(每个ID多个值)。Pandas sql等效

什么pandas相当于sql query

SELECT id, Max(value)-Min(value) AS val1 
FROM t1 
GROUP BY t1.id 
+0

有你试过什么了吗?也许阅读[Numpy - 与SQL比较](http://pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html)? –

回答

1

你能做到这样:

In [31]: df = pd.DataFrame(np.random.randint(0, 5, (10, 2)), columns=['id','value']) 

In [32]: df 
Out[32]: 
    id value 
0 2  4 
1 4  0 
2 3  1 
3 4  2 
4 4  1 
5 2  3 
6 1  0 
7 3  2 
8 2  2 
9 1  1 

In [33]: df.groupby('id')['value'].apply(lambda x: x.max() - x.min()).reset_index() 
Out[33]: 
    id value 
0 1  1 
1 2  2 
2 3  1 
3 4  2 

这里是Pandas comparison with SQL有很多例子 - 这可能是有用的

+0

帮助,谢谢! –