我注意到,虽然pd.series.append list.append更改了原始列表,但它并没有更改最初的系列:
b = [1,2,3,4,5]
b.append(9)
b
# returns [1, 2, 3, 4, 5, 9]s = pd.Series([1,2,3,4,5])
s.append(pd.Series([9]))
s
# returns
0 1
1 2
2 3
3 4
4 5尽管使用Python很长一段时间,但我始终没有意识到这一点,并花费了很长时间进行调试,因为在使用内部的'append‘方法运行系列的for循环时,我不断地获取错误或意外值。Python是我的第一种编程语言。
为什么有差异,虽然两者是相同的方法?还是“追加”方法是一个例外?它会让人感到困惑,因为它在编写python代码和获得我想要的结果方面有很大的不同。这让我怀疑,在列表和序列(或数据)之间是否也存在类似的差异,我应该知道。
每当我遇到这些看似琐碎的事情时,我都会感到有点沮丧,因为我个人倾向于以后忘记它们,并重复同样的错误。
我是不是应该记住这件事,然后把它忘掉?我想知道我在尝试学习这些新东西时应该采取的方法,因为我不知道我是否能够随着时间的推移而记住这些细微的差异。如果有任何好的建议或建议,我将不胜感激。
发布于 2022-02-07 09:34:10
在Pandas中,append方法执行而不是更改原始DataFrame。
相比之下,列表的append方法更改了目标列表。
让我们来看看。
b = [1,2,3,4,5]
b.append(9)
b
# returns [1, 2, 3, 4, 5, 9] # target list 'b' has been changed.熊猫的案子。
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'), index=['x', 'y'])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'), index=['x', 'y'])
df.append(df2)
df
# result =
A B
x 1 2
y 3 4因此,我们必须明确地分配,我们将改变DataFrame。例如:
df = df.append(df2) # this changes df.
df
# result = A B
x 1 2
y 3 4
x 5 6
y 7 8希望能有所帮助:)
https://stackoverflow.com/questions/71016110
复制相似问题