Python 使用带有参数的映射器函数重命名dataframe列

Python 使用带有参数的映射器函数重命名dataframe列,python,pandas,dataframe,Python,Pandas,Dataframe,如何将参数传递给中的映射器函数?下面的示例使用映射器函数test。我想根据传递的附加参数更改它的行为 def test(x): return "A" + x df.rename(mapper=test, axis='columns') 在本例中,映射器函数在每个列名后面追加一个“A”。我希望映射程序不总是附加一个“A”,而是附加一个我在函数调用中作为参数提供的字符。因此,我的问题是:如何将附加参数传递给函数test?IIUC,您可以使用functools.partial: impor

如何将参数传递给中的映射器函数?下面的示例使用映射器函数
test
。我想根据传递的附加参数更改它的行为

def test(x):
    return "A" + x

df.rename(mapper=test, axis='columns')

在本例中,映射器函数在每个列名后面追加一个
“A”
。我希望映射程序不总是附加一个
“A”
,而是附加一个我在函数调用中作为参数提供的字符。因此,我的问题是:如何将附加参数传递给函数
test

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

你也许可以用。请包括一个小样本输入数据框和所需的输出。我添加了映射器功能。我需要如何更改映射器函数和调用,使其在一种情况下附加“A”,在另一种情况下附加“B”。仍然不清楚所需的输出是什么。是否要向每列添加
“A”
?或
“A”+x
。映射器会在每个列名后面附加一个“A”。我希望映射程序不总是附加一个“A”,而是附加一个我在函数调用中作为参数给出的字符。因此,我的问题是:如何将参数传递给函数“test”,请尝试添加前缀:-)