这个 pandas 代码有什么问题?

What is wrong with this pandas code?

import pandas as pd
s1 = pd.Series([1, 2, 3])
s2 = pd.Series([4, 5, 6])
s1.append(s2)
print(s1)

这么简单的东西,但它不是附加的。出来是: 0 1 1 2 2 3 数据类型:int64 它只打印 s1。它没有附加?我在这里犯了什么愚蠢的错误?

因为.append returns 一个新系列,它不会原地变异(像list.append)。尝试:

import pandas as pd
s1 = pd.Series([1, 2, 3])
s2 = pd.Series([4, 5, 6])
s3 = s1.append(s2)
print(s3)
import pandas as pd
s1 = pd.Series([1, 2, 3])
s2 = pd.Series([4, 5, 6])
s1 = s1.append(s2)
print(s1)

追加函数 return 是一个新对象,而不是修改调用它的对象。默认情况下,大多数 pandas 函数不是 'in place',这意味着它们 return 一个新对象(有些允许您指定在适当的位置执行操作,但追加不是其中之一)。

相反,您可以重新分配 s1:

import pandas as pd
s1 = pd.Series([1, 2, 3])
s2 = pd.Series([4, 5, 6])
s1 = s1.append(s2)
print(s1)