啊啊啊啊啊吖

2019-03-14   阅读量: 749

数据分析师 Python数据分析

使用pandas为什么`DataFrame(foo)

扫码加入数据分析学习群

从示例开始......

In [1]: import pandas as pd

In [2]: from sklearn.datasets import load_iris

In [3]: iris = load_iris()

In [4]: X = pd.DataFrame(data=iris.data, columns=iris.feature_names)

In [5]: output_df = pd.DataFrame(X)

In [6]: X is output_df

Out[6]: False

In [7]: list(X.columns)

Out[7]:

['sepal length (cm)',

'sepal width (cm)',

'petal length (cm)',

'petal width (cm)']

In [8]: output_df['y'] = iris.target

In [9]: list(X.columns)

Out[9]:

['sepal length (cm)',

'sepal width (cm)',

'petal length (cm)',

'petal width (cm)',

'y']

[6]说X is output_df是False,这意味着他们不是同一个对象。如果它们不是同一个对象,则向其中一个添加列不应影响另一个。

但是[9]告诉我们添加一个列output_df肯定会添加相同的列X,这意味着它们实际上是同一个对象。

为什么这里有断线?

(pd.__version__ == 0.24.1和python --version = Python 3.7.1,如果它的事项)

解决办法:a DataFrame和它的底层数据之间存在一些分离,这些数据存储在其中BlockManager。在您的示例中,基础BlockManager数据是相同的,因此将其更改为一个DataFrame将影响另一个

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
11.0571 1 3 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子