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”,请尝试添加前缀:-)