pandas 使用DataFrame 'function'对象的函数没有属性'dtypes'

ugmeyewa  于 2023-03-28  发布在  其他
关注(0)|答案(2)|浏览(127)

上下文:

我正在使用dataBase和dataFrames,所以我需要获取我正在提取和转换的dataFrame的一些版本,所以我决定使用.copy函数来获取独立的DataFrames。我使用Jupyter Notebook

展示一个可复制的示例

我正在做一件与这个例子类似的事情。

import pandas as pd

# Create DataFrame from Dictionary
technologies = {
    'Courses':["Spark","PySpark","Hadoop"],
    'Fee' :[20000,25000,26000],
    'Duration':['30day','40days','35days'],
    'Discount':[1000,2300,1500]
              }

raw = pd.DataFrame(technologies)

#Copy the dataFrame to have a BackUP

df = raw.copy

print(df)

输出:

<bound method NDFrame.copy of    Courses    Fee Duration  Discount
0    Spark  20000    30day      1000
1  PySpark  25000   40days      2300
2   Hadoop  26000   35days      1500>

在此之前,一切看起来都很好。但是当我为那个dataFrame执行一些函数时,比如dtypes,以获取dataframe的所有类型的元素。
df.dtypes

输出:

AttributeError: 'function' object has no attribute 'dtypes'

hmmo2u0o

hmmo2u0o1#

copy是一个方法,默认情况下返回dataFrame的深副本(您可以设置deep=False以获取对同一dataFrame的引用)。

df = raw.copy()
df.dtypes

lyfkaqu1

lyfkaqu12#

这里不需要使用复制功能。
您可以简单地将新数据框指定为原始数据框,这样您就可以获得两者的副本。

df = raw

这不会改变原始数据集,你可以随意改变df,不会丢失任何信息。
完整示例:

import pandas as pd
technologies = {
'Courses':["Spark","PySpark","Hadoop"],
'Fee' :[20000,25000,26000],
'Duration':['30day','40days','35days'],
'Discount':[1000,2300,1500]
          }

 raw = pd.DataFrame(technologies)

 df= raw

 print(df.dtypes)
 df.head()

运行此命令将显示我们维护了raw中的结构和数据,并将raw复制到df中

相关问题