2016-04-28 11 views
1

Ich habe eine dataframe mit vielen Produkten A, B, C, D, ...Wie kann man eine Funktion mehrmals automatisch aufrufen?

Ich habe eine Funktion erstellt, von der ich Daten über alle Produkte sammeln kann.

Aber in meiner Datei habe ich viele Produkte (20), und ich muss die Funktion für jedes Produkt aufrufen.

Meine Funktion ist:

# function for prooduct A 
function_product(["A"]) 

df_A_ = pd.DataFrame(file, columns = ['VAR1','VAR2']) 

df_A = df_A_[1:] 

df_A["Products"] = "A" 

Wissen Sie, wie ich diese Funktion, um meinen Code nur einmal statt 20 mal automatisieren können anrufen?

+0

Ich habe überhaupt keine Ahnung was deine Funktion macht. Können Sie es nach SO Anweisungen PLZ eingeben? (Eindruck wäre zum Beispiel geschätzt), dann beschreiben Sie es ein wenig? IIUC, Sie haben bereits eine Datei geladen, Sie erstellen einen Datenrahmen dafür, löschen die erste Zeile und fügen eine Spalte hinzu, die das Etikett Ihres Produkts enthält, oder? – ysearka

+1

Können Sie bitte ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) bereitstellen? – Thanos

Antwort

1

Sie können eine Schleife für das, verwenden, wie unten:

products = ["A", "B", "C", "D"] 
for product in products: 
    function_product([product]) 

Das obige Skript wird die function_product Methode für alle Produkte in der products Liste aufgeführt nennen.

+0

danke EbraHim, Aber es erstellt nicht alle DataFrame mit jedem Produkt. Ich muss für jedes Produkt einen Datenrahmen erstellen, um alle in einem Datenrahmen zu verknüpfen und meine Analyse zu machen. –

+0

@BENAMARAILAN Gern geschehen. Wenn dies das ist, was Sie wollen, dann können Sie es als Antwort markieren, indem Sie auf das Häkchen auf der linken Seite meiner Antwort klicken :) – EbraHim

+0

Nein, es ist nicht was ich will, ich möchte viele Datenrahmen mit den Funktionen erstellen. –

0

Ja, ich habe eine Datei bereits geladen.

In dieser Datei, ich habe alle meine Produkte auf dem Formular:

products price 
A|B|C   10|20|30 

Ich mag würde wissen, was der Preis des Produkts A.

Also in meiner Funktion i-Band:

def report(product): 
    price_index = file[0].index(price) 
    price_products = file[price_index].split("|") 
    for i in file: 
     if products[i] in product: 
      total_price += float(price_products[i]) 

und auf dem anderen Block i-Band:

report("A") 
df_A_ = pd.DataFrame(file, columns = ['VAR1','VAR2']) 
df_A = df_A_[1:] 
df_A["Products"] = "A" 

Also ich möchte eine Schleife mit all meinen Produkten erstellen und meine Funktion juste einmal aufrufen.

Dank

0

Wenn Sie Ihre Liste nicht erstellt Produkte haben:

list_products = products.split('|') 
list_prices = prices.split('|') 

Dann Sie Ihre Datenrahmen eine Liste mit erstellen:

import pandas as pd 
list_df = [] 
for i in range(len(list_products)): 
    list_df.append(pd.DataFrame({'product':[list_products[i]],'price':[list_prices[i]]})) 

Oder wenn Sie wollen Erstellen Sie einen Datenrahmen mit allen Preisen und Produkten:

df = pd.DataFrame({'product':list_products,'price':list_prices}) 
Verwandte Themen