Désolé, je m'excuse maintenant, juste commencé à apprendre Python et en essayant de faire fonctionner quelque chose.Python pandas plusieurs conditions
ensemble de données Ok est
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
Je voudrais filtrer un emplacement spécifique par nom ou ID, ne me dérange pas, puis de choisir le prix minimum pour cet emplacement. De préférence pour le coder en dur, puisque je n'ai que quelques endroits qui m'intéressent. Par exemple: locationid = 60008494.
Je vois que vous pouvez faire deux conditions sur une ligne, mais je ne vois pas comment l'appliquer. Alors j'essaye de l'imbriquer. N'a pas besoin d'être pandas, il semble que la première chose que j'ai trouvée a fait partie de ce que j'avais besoin.
Le code que j'ai obtenu jusqu'ici est, et ne fait que la partie minimale de ce que je cherche à atteindre.
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"
MISE À JOUR. Ok donc, la dernière partie, semble que le code suivant est la direction que je devrais aller. Si je pouvais avoir s = typeid, locationid et prix, c'est parfait. J'ai donc écrit ce que je veux faire, quelle est la syntaxe correcte pour l'obtenir en python? Désolé, je suis habitué à Excel et 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')
Salut et bienvenue dans Stack Overflow. Il est difficile pour nous de dire ce qui ne va pas ici, et ce que vous attendez. Peut-être pourriez-vous nous donner un peu plus d'information, en particulier: quelle est la sortie que vous attendez de votre code? Qu'est-ce que vous obtenez à la place? Avez-vous essayé chacune des conditions de leur propre chef pour s'assurer qu'ils travaillent seuls avant de combiner? Ont-ils atteint les résultats auxquels vous vous attendiez? Montrez-nous les résultats? Note: veuillez éditer votre question et ajouter cette information là - ne la mettez pas dans les commentaires car le formatage du code est horrible. –
Ok, eh bien, il y a des milliers de caractères et des milliers d'emplacements. Je voulais juste être en mesure de filtrer pour des emplacements spécifiques et pour chaque typeid, de produire le prix minimum. Le principal problème que j'ai est divining la bonne formule et le mettre dans un état où je peux utiliser les produits pour les conditions suivantes? Donc, je finis par importer un csv, calculer, puis exporter vers un csv, donc je peux utiliser les résultats. Donc, le processus est essentiellement, je veux seulement l'emplacement 60008494, grouper par, puis trouver la valeur de prix minimum pour chaque typeid, pour ce seul emplacement. J'espère que c'est plus clair. – JoeEve
Eh bien, vous n'avez pas besoin de nous donner votre base de données complète ... juste quelques exemples de données et exemples de sortie que vous attendez. Vous pouvez prétendre qu'il n'y a que 4 ou 5 lignes dans votre base de données et l'utiliser comme un échantillon représentatif. –