2016-08-21 46 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

幫助,謝謝! –