21

次のようなデータフレームがあるとします。

df = pd.DataFrame([['foo', 'x'], ['bar', 'y']], columns=['A', 'B'])


       A    B
0    foo    x
1    bar    y

次のように、データフレームに関しては、Apply で単一の引数関数を使用する方法を知っています。

def some_func(row):
    return '{0}-{1}'.format(row['A'], row['B'])

df['C'] = df.apply(some_func, axis=1)

df


       A    B        C
0    foo    x    foo-x
1    bar    y    bar-y

複数の入力引数が含まれる場合、データフレームに適用するにはどうすればよいですか? これが私が欲しいものの例です:

def some_func(row, var1):
    return '{0}-{1}-{2}'.format(row['A'], row['B'], var1)

df['C'] = df.apply(some_func(row, var1='DOG'), axis=1)

df


       A    B            C
0    foo    x    foo-x-DOG
1    bar    y    bar-y-DOG

この特定の例を解決するための回避策を探しているのではなく、一般的にこのようなことを行う方法を探しているだけです。アドバイスをいただければ幸いです。

4

3 に答える 3

2

私はそれができると思います

df.apply('-'.join,1)+'-DOG'
Out[157]: 
0    foo-x-DOG
1    bar-y-DOG
dtype: object
于 2018-03-12T14:29:09.640 に答える