英文:
Is it possible to input multiple values into a single variable in a Python function?
问题
这是我的函数:
def function_drop_columns(x, y):
return x.loc[:, ~(x.columns.str.endswith(y))]
x
始终只是一个输入,指定一个数据框。但是对于 y
,可能有许多列我想要删除(它们以不同的字符串结尾)。是否有办法重写这个函数,使得 y
可以接受多个值作为输入?
我在想是否可以使用一些“或”操作符,但似乎没有起作用。
df1 = function_drop_columns(df, 'DATE' or 'STATE')
我需要更改函数本身,还是有办法重写输入以涵盖不同的值?
英文:
Here's my function:
def function_drop_columns (x,y):
return (x).loc[:,~(x).columns.str.endswith(y)]
x
will always just be one input- specifying a dataframe. For y
, however, there could be many columns I want to drop (which end with different strings). Is there any way to re-write this so y
can be input with multiple values?
I was wondering if I could input some kind 'or' operator but it doesn't seem to have worked.
df1 = function_drop_columns (df,'DATE' or 'STATE')
Do I need to change the function itself or is there way to re-write the input to cover different values?
答案1
得分: 3
pandas.Series.str.endswith
允许将字符串元组用作模式。您可以使用:
function_drop_columns(df, ('DATE', 'STATE'))
英文:
pandas.Series.str.endswith
allows tuple of strings as pattern. Use could use:
function_drop_columns(df, ('DATE', 'STATE'))
答案2
得分: 0
你可以在函数参数前使用 *
将值打包到你的函数中,比如 def function_drop_columns(x, *args):
,它会将 x 后面的所有值打包起来:
def function_drop_columns(x, *y):
print(x)
print(y)
然后在控制台中输入以下代码:
>>> function_drop_columns("第一个值", "第二个值", "第三个值")
你会得到以下输出:
第一个值
('第二个值', '第三个值')
你也可以使用 **
来传递带有关键字的值:
def function_drop_columns(x, **y):
print(x)
print(y)
然后在控制台中输入以下代码:
>>> function_drop_columns("第一个值", second="第二个值", third="第三个值")
你会得到以下输出:
第一个值
{'second': '第二个值', 'third': '第三个值'}
英文:
You can use *
before an argument to pack value in your function like def function_drop_columns(x, *args):
which pack all value after x like and :
def function_drop_columns(x, *y):
print(x)
print(y)
And with that you get in the console :
>>> function_drop_columns("First value", "Second value", "Third value")
First value
('Second value', 'Third value')
You can also use **
if your want to pass value with keyword like :
def function_drop_columns(x, **y):
print(x)
print(y)
And we get :
>>> function_drop_columns("First value", second="Second value", third="Third value")
First value
{'second': 'Second value', 'third': 'Third value'}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论