想象我们有一个像这样的数据框:
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/