【发布时间】:2021-03-24 00:19:40
【问题描述】:
我正在尝试创建一个创建虚拟变量并将列附加到现有数据框的 Pandas 管道。 不幸的是,当管道完成时,我无法让附加的列粘住。
例子:
def function(df):
pass
def create_dummy(df):
a = pd.get_dummy(df['col'])
b = df.append(a)
return b
def mah_pipe(df):
(df.pipe(function)
.pipe(create_dummy)
.pipe(print)
return df
print(mah_pipe(df))
首先 - 我不知道这是否是一个好习惯。
奇怪的是.pipe(print) 打印带有附加列的数据框。耶。
但声明print(mah_pipe(df)) 没有。我虽然他们会以同样的方式行事。
我试图阅读有关pd.pipe 的文档,但我无法弄清楚。
希望有人可以帮助了解正在发生的事情。
【问题讨论】:
-
因为您的
create_dummy函数不会修改df而是创建一个新的数据框,mah_pipe也不会... -
天啊。这是一个简单的解决方法。感谢您的帮助。
-
我已尝试更正您的管道。您的
create_dummy有效。pipe返回一个 DataFrame 或所使用的函数返回的任何内容并向前传递。问题在于print作为一个函数。print返回None