gpt4 book ai didi

python - 将函数应用于我的数据框中的所有列

转载 作者:行者123 更新时间:2023-12-04 03:54:32 26 4
gpt4 key购买 nike

我无法将我的自定义函数应用到 dataframe:

df = pd.DataFrame({
"a": ["related-1", "related-0", "related-1"],
"b": ["request-1", "request-0", "request-1"],
"c": ["offer-1", "offer-0", "offer-1"],
})

def clean_column(df, column):
return df[column].apply(lambda x: re.sub(".*-", "", x)).astype("int64")

clean_column(df, "a") # This works

我想将此函数应用于多个列:

df.applymap(lambda x: clean_column(df, x))

错误:KeyError:'related-1'

现在确定我在这里做错了什么,有人能告诉我这不起作用的原因吗?

最佳答案

apply 将整个列作为输入,而不仅仅是名称。所以你想要:

def clean_column(column):
return column.apply(lambda x: re.sub(".*-", "", x)).astype("int64")

df.apply(clean_column)

但是,在您的情况下,您需要为每一列再次apply。换句话说,您想将函数应用于所有单元格。即applymap:

df.applymap(lambda x: re.sub(".*-", "", x)).astype("int64")

输出:

   a  b  c
0 1 1 1
1 0 0 0
2 1 1 1

关于python - 将函数应用于我的数据框中的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64068676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com