我知道有几种方法可以在Pandas中建立数据框。我的问题只是想了解为什么下面的方法不起作用。
首先,是一个工作示例。我可以创建一个空的数据框,然后添加一个类似于documenta的新数据框
In [3]: df1 = pd.DataFrame([[1,2],], columns = ['a', 'b'])
...: df2 = pd.DataFrame()
...: df2.append(df1)
Out[3]: a b 0 1 2
但是,如果执行以下操作,则df2会变为None:
In [10]: df1 = pd.DataFrame([[1,2],], columns = ['a', 'b'])
...: df2 = pd.DataFrame()
...: for i in range(10):
...: df2.append(df1)
In [11]: df2
Out[11]:
Empty DataFrame
Columns: []
Index: []
有人可以解释为什么这样工作吗?谢谢!
发生这种情况是因为.append()方法返回一个新的df:
pandas.DataFrame.append
返回: 附加: DataFrame
这是一个工作示例,因此您可以查看循环的每次迭代中发生的情况:
df1 = pd.DataFrame([[1,2],], columns=['a','b'])
df2 = pd.DataFrame()
for i in range(0,2):
print(df2.append(df1))
> a b
> 0 1 2
> a b
> 0 1 2
如果将.append()的输出分配给df(甚至是相同的),则会得到您可能期望的结果:
for i in range(0,2):
df2 = df2.append(df1)
print(df2)
> a b
> 0 1 2
> 0 1 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句