對不起,我現在很抱歉,剛開始學習Python並試圖讓一些工作。Python熊貓的多種條件
好的數據集是
Buy, typeid, volume, issued, duration, Volume Entered,Minimum Volume, range, price, locationid, locationname
SELL 20 2076541 2015-09-12T06:31:13 90 2076541 1 region 331.21 60008494 Amarr
SELL 20 194642 2015-09-07T19:36:49 90 194642 1 region 300 60008494 Amarr
SELL 20 2320 2015-09-13T07:48:54 3 2320 1 region 211 60008491 Irnin
我想通過名稱或ID來過濾特定的位置,不打擾我,然後挑選該位置的最低價格。最好將其硬編碼,因爲我只有幾個我感興趣的位置。例如locationid = 60008494.
我看到你可以在一行上做兩個條件,但我看不到如何應用它。 所以我試圖嵌套它。 不一定是熊貓,只是看起來我發現的第一件事是做了我需要的一部分。
到目前爲止我得到的代碼是,並且只是我所期望實現的最小部分。
data = pd.read_csv('orders.csv')
length = len(data['typeid'].unique())
res = pd.DataFrame(columns=('Buy', 'typeid', 'volume','duration','volumeE','Minimum','range','price','locationid','locationname'))
for i in range(0,length):
name_filter = data[data['typeid'] == data['typeid'].unique()[i]]
price_min_filter = name_filter[name_filter['price'] == name_filter['price'].min() ]
res = res.append(price_min_filter, ignore_index=True)
i=i+1
res.to_csv('format.csv') # writes output to csv
print "Complete"
已更新。 好吧,最新的部分,看起來像下面的代碼是我應該進去的方向。如果我可以有s = typeid,locationid和price,那是完美的。所以我寫了我想要做的事情,在python中得到它的正確語法是什麼?對不起,我習慣於Excel和SQL。
import pandas as pd
df = pd.read_csv('orders.csv')
df[df['locationid'] ==60008494]
s= df.groupby(['typeid'])['price'].min()
s.to_csv('format.csv')
嗨,歡迎來到Stack Overflow。我們很難說出這裏出了什麼問題,以及你的期望。也許你可以給我們更多的信息,特別是:你期望從你的代碼中得到的輸出是什麼?你取而代之的是什麼?你是否嘗試過各自的條件,以確保它們在合併之前自行工作?他們是否達到了你期望的結果?向我們展示結果?注意:請編輯您的問題並在其中添加此信息 - 不要將它放在註釋中,因爲代碼格式很糟糕。 –
好吧,有數千個typeid和數千個位置。只是想能夠過濾特定的位置和每個類型,以產生最低的價格。 我遇到的主要問題是正確的使用方法,並將其置於可以在以下條件下使用產品的狀態?所以我最終從csv導入,計算,然後導出到csv,所以我可以使用結果。 所以這個過程基本上是,我只想要位置60008494,按組,然後找到每個typeid的最低價格值,爲那個位置。 希望更清楚。 – JoeEve
那麼,你不需要給我們你的完整數據庫......只是你想要的一些示例數據和示例輸出。您可以假裝數據庫中只有4-5行,並將其用作具有代表性的示例。 –