这个 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)
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)