746 Stimmen

Wie wendet man eine Funktion auf zwei Spalten eines Pandas-Datenrahmens an?

Angenommen, ich habe eine df die Spalten von 'ID', 'col_1', 'col_2' . Und ich definiere eine Funktion :

f = lambda x, y : my_function_expression .

Jetzt möchte ich die f a df zwei Spalten 'col_1', 'col_2' um elementweise eine neue Spalte zu berechnen 'col_3' , so ähnlich:

df['col_3'] = df[['col_1','col_2']].apply(f)  
# Pandas gives : TypeError: ('<lambda>() takes exactly 2 arguments (1 given)'

Was ist zu tun?

** Fügen Sie ein detailliertes Beispiel wie folgt hinzu ***

import pandas as pd

df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})
mylist = ['a','b','c','d','e','f']

def get_sublist(sta,end):
    return mylist[sta:end+1]

#df['col_3'] = df[['col_1','col_2']].apply(get_sublist,axis=1)
# expect above to output df as below 

  ID  col_1  col_2            col_3
0  1      0      1       ['a', 'b']
1  2      2      4  ['c', 'd', 'e']
2  3      3      5  ['d', 'e', 'f']

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X