我正在尝试编写一个函数,该函数将非变量引入函数。我通常不会编写函数,但正如我所知,我正在尝试使我的脚本更加Pythonic并节省时间。
示例:
source = pd.DataFrame(
{
'Name': ['John', 'Mike', 'John', 'John'],
'Year': ['1999', '2000', '2000', '2000'],
'Message': ['I Love You', 'Will Remember You', 'Love', 'I Love You']
}
)
def unstack(df, keyword):
d = (df.keyword.str.split(expand=True).stack)
unstack(source, year)
我想要的是:
d = (df.year.str.split(expand=True).stack)
我知道将有效密钥传递给函数是很常见的,但我试图让函数接受参数并将其用作密钥。
希望你明白这一点。
答案 0 :(得分:2)
要获取fixed
的{{1}}属性,请使用:
keyword
因此:
df
但是,最好只做这部分调用约定:
getattr(df, keyword)
而不是
def unstack(df, keyword):
d = getattr(df, keyword).str.split(expand=True).stack