为什么以下代码不会影响Output
DataFrame?(这个例子本身并不有趣 - 它是一种'复制'DataFrame的复杂方式.)
def getRow(row): Output.append(row) Output = pd.DataFrame() Input = pd.read_csv('Input.csv') Input.apply(getRow)
有没有办法获得使用该apply
功能的功能,以便影响其他变量?
DataFrame.append()
返回一个新的数据帧.它不会修改Output
,而是每次创建一个新的.
DataFrame.append(self, other, ignore_index=False, verify_integrity=False)将行追加
other
到此帧的末尾,返回一个新对象.不在此框架中的列将添加为新列.
这里:
Output.append(row)
你创建一个新的数据帧,但立即扔掉它.
虽然这有效,但我强烈建议不要使用global
:
df = DataFrame([1, 2, 3]) df2 = DataFrame() def get_row(row): global df2 df2 = df2.append(row) df.apply(get_row) print(df2)
输出:
0 1 2 0 1 2 3
把它作为示范会发生什么.不要在代码中使用它.