如何将参数传递给pandas.DataFrame.rename
中的映射器函数?下面的示例使用一个映射器函数test
。我想根据传递的其他参数更改其行为。
def test(x):
return "A" + x
df.rename(mapper=test, axis='columns')
在此示例中,映射器函数将"A"
附加到每个列名称。我希望映射器不总是附加一个"A"
而是一个我在函数调用中作为参数给出的字符。所以我的问题是:如何将其他参数传递给函数test
?
答案 0 :(得分:0)
IIUC,您可以使用functools.partial
:
import pandas as pd
from functools import partial
print(pd.__version__)
#0.23.4
df = pd.DataFrame({"col1": ['a', 'b', 'c'], "col2": [1, 2, 3]})
def test(col, x):
return x + col
df.rename(mapper=partial(test, x="abc_"), axis='columns')
# abc_col1 abc_col2
#0 a 1
#1 b 2
#2 c 3