为什么使用测向下降删除一列删除整个数据帧?

2024-09-29 23:21:53 发布

您现在位置:Python中文网/ 问答频道 /正文

post之后,我尝试从数据帧中删除两列:

import pandas as pd
from io import StringIO

A_csv = """cases,population,country,year,type,count
745,19987071,Afghanistan,1999,population,19987071
2666,20595360,Afghanistan,2000,population,20595360
37737,172006362,Brazil,1999,population,172006362
80488,174504898,Brazil,2000,population,174504898
212258,1272915272,China,1999,population,1272915272
213766,1280428583,China,2000,population,1280428583"""

with StringIO(A_csv) as fp:
    A = pd.read_csv(fp)
print(A)
print()
dropcols = ["type", "count"]

A = A.drop(dropcols, axis = 1, inplace = True)
print(A)

结果

^{pr2}$

有什么明显的东西在逃避我吗?在


Tags: csvimportastypecountpostpdpopulation
1条回答
网友
1楼 · 发布于 2024-09-29 23:21:53

评论中提到了这些解决方案。我只是在这篇文章中充实它们。


使用drop时,请注意您的两个选项。在

其中之一是删除inplace。完成后,对数据帧进行操作,并对原始进行更改。这意味着这已经足够了。在

A.drop(dropcols, axis=1, inplace=1)

A
    cases  population      country  year
0     745    19987071  Afghanistan  1999
1    2666    20595360  Afghanistan  2000
2   37737   172006362       Brazil  1999
3   80488   174504898       Brazil  2000
4  212258  1272915272        China  1999
5  213766  1280428583        China  2000

正如^{} documentation指定的那样:

inplace : bool, default False

If True, do operation inplace and return None.

注意,当drop被就地调用时,它返回None(这是任何不返回值的函数的默认值),并且A将已经被更新。在

另一个选择是删除,但返回一个副本。这意味着原始文件不会被修改。现在,您可以:

^{pr2}$

其中B和{}分别存在。在

请注意,使用inplace不会保存任何内存-这两个方法都会创建一个副本。但是,在前一种情况下,将在场景后面创建一个副本,并将更改添加回原始对象中。在

相关问题 更多 >

    热门问题