首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >list.append对pd.series.append

list.append对pd.series.append
EN

Stack Overflow用户
提问于 2022-02-07 09:21:25
回答 1查看 85关注 0票数 1

我注意到,虽然pd.series.append list.append更改了原始列表,但它并没有更改最初的系列:

代码语言:javascript
复制
b = [1,2,3,4,5]

b.append(9)

b

# returns [1, 2, 3, 4, 5, 9]
代码语言:javascript
复制
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代码和获得我想要的结果方面有很大的不同。这让我怀疑,在列表和序列(或数据)之间是否也存在类似的差异,我应该知道。

每当我遇到这些看似琐碎的事情时,我都会感到有点沮丧,因为我个人倾向于以后忘记它们,并重复同样的错误。

我是不是应该记住这件事,然后把它忘掉?我想知道我在尝试学习这些新东西时应该采取的方法,因为我不知道我是否能够随着时间的推移而记住这些细微的差异。如果有任何好的建议或建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-07 09:34:10

在Pandas中,append方法执行而不是更改原始DataFrame。

相比之下,列表的append方法更改了目标列表。

让我们来看看。

代码语言:javascript
复制
b = [1,2,3,4,5]

b.append(9)

b

# returns [1, 2, 3, 4, 5, 9] # target list 'b' has been changed.

熊猫的案子。

代码语言:javascript
复制
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。例如:

代码语言:javascript
复制
df = df.append(df2) # this changes df.

df
# result =  A   B
        x   1   2
        y   3   4
        x   5   6
        y   7   8

希望能有所帮助:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71016110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档