【发布时间】:2016-09-29 17:08:33
【问题描述】:
我正在尝试编写一个函数,该函数接受一个函数的非变量。我通常不编写函数,但随着我的学习,我正在努力使我的脚本更加 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)
我知道将有效键传递给函数是很常见的,但我试图让函数接受参数并将其用作键。
希望你能明白。
【问题讨论】:
-
我不知道你在说什么。什么是“非变量”?
-
抱歉,我可能不知道正确的术语。但是这个例子解释得更清楚了。
-
您的意思是要将单词“year”传递给函数,以便让函数访问对象的“year”属性?
-
对不起,我还是不明白。你想从 unstack 函数中返回一些东西吗?否则起不了多大作用。该行是否产生错误?
-
顺便说一句,包括您的
imports 将有助于它成为一个完整、可验证的复制器。import pandas as pd可能是 pandas 世界的标准约定,但这并不意味着随机 Python 人员知道这是您正在使用的库。 (运送一个 不需要 需要第三方工具(例如 Pandas)的复制器会更好)。见stackoverflow.com/help/mcve