python - 是否有可能有一个函数可以使用 Python 中的 Pandas 获取任何数据框和任何列作为其输入?

标签 python pandas

想象我们有一个像这样的数据框:

 my_df>>  

  column_1   column_2 column_3  column_4
0  0.276162  0.552951  0.866023  0.571535
1  0.112933  0.549487  0.626958  0.988705
2  0.916932  0.561641  0.220696  0.545019

我可以有一个函数可以获取像这样的任何数据帧并将其任何列作为输入吗?

为了更好地澄清,如果我有这样的函数:

def multiply_5(df,column):
    df.column=df.column.apply(lambda x:x*5-3)

如果我像这样使用它,它会起作用吗? :

multiply_5(my_df,column_2)

为了得到这个:

my_df.column_2=my_df.column_2.apply(lambda x:x*5-3)

我知道我编写的这种特定方式不起作用,但是有没有简单的方法可以将此函数用于其他数据框?

最佳答案

尝试:

def multiply_5(df,column):
    df[column]=df[column].apply(lambda x:x*5-3)
    return df

df = multiply_5(df, "column_2")

print(df)
    column_1    column_2    column_3    column_4
0   0.276162    -4.176225   0.866023    0.571535
1   0.112933    -4.262825   0.626958    0.988705
2   0.916932    -3.958975   0.220696    0.545019

甚至通过属性做同样事情的更奇怪的方法:

def multiply_5(df,column):
    setattr(df,column, getattr(df,column).apply(lambda x:x*5-3))
    return df 

关于python - 是否有可能有一个函数可以使用 Python 中的 Pandas 获取任何数据框和任何列作为其输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42744241/

相关文章:

python - 填写日期并使用以前的值

python - 如何用他们的代码替换 "★✿•"?

python - 如何在 Pyparsing 中进行正确的递归?

python - Pandas :在一系列可用值之前/之后估算给定数量的缺失值

python - 重新采样数据时为什么它没有在 csv 文件中连续重新采样

python - Flask 上下文处理器函数

python - 如何使用 SQLAlchemy、pydantic 和 FastAPI 处理聚合查询结果

python - Pandas 根据另一个数据帧将多个列和行值设置为 nan

python - Pandas multiIndex 完全复制到数据帧切片

python - 从 .fits 文件构建 pandas 数据框