Pandas创建DataFrame提示:type object 'object' has no attribute 'dtype'解决方案

目录
  • 发现问题
  • 原因分析:
  • 解决方案:
  • 总结

发现问题

pandas版本0.25.3

import pandas as pd

symbol_info_columns = ['1', '持仓方向', '持仓量', '持仓收益率', '持仓收益', '持仓均价', '当前价格', '最大杠杆']  # v3
symbol_config = {'BTC': 'BTC-USDT-210924', 'LTC': 'LTC-USDT-210924', 'EOS': 'EOS-USDT-210924', 'ETH': 'ETH-USDT-210924', 'XRP': 'XRP-USDT-210924', 'FIL': 'FIL-USDT-210924'}
symbol_info = pd.DataFrame()
# dates = pd.date_range('20190101', periods=6)
# num_df = pd.DataFrame(data=np.random.randn(6, 8), index=dates, columns=symbol_info_columns)
symbol_info = pd.DataFrame(index=symbol_config.keys(), columns=symbol_info_columns)

data为空,且dtype默认为空时

出现type object ‘object’ has no attribute 'dtype’告警

原因分析:

创建DataFrame时,data字段为空

会默认创建一个空字典作为data

    def __init__(self, data=None, index=None, columns=None, dtype=None, copy=False):
        if data is None:
            data = {}

然后初始化字典

elif isinstance(data, dict):
    mgr = init_dict(data, index, columns, dtype=dtype)

init_dict函数中:

columns非空,且dtype默认为None时,会赋值nan_dtype = object

if columns is not None:
	if missing.any() and not is_integer_dtype(dtype):
	    if dtype is None or np.issubdtype(dtype, np.flexible):
	        # GH#1783
	        nan_dtype = object

该object下无dtype方法

可能是object引用错误

解决方案:

pandas(版本0.25.3)init_dict函数位于

D:\Users\。。。\Anaconda3\envs\Python3.7\Lib\site-packages\pandas\core\internals\construction.py

参考Python3.9环境中pandas(版本1.2.5)

同名函数(D:\Users\。。。\Anaconda3\envs\Python3.7\Lib\site-packages\pandas\core\internals\construction.py)写法

nan_dtype = np.dtype(object)

可见该问题应该是pandas(版本0.25.3)的bug

总结

到此这篇关于Pandas创建DataFrame提示:type object 'object' has no attribute 'dtype'解决方案的文章就介绍到这了,更多相关Pandas创建DataFrame报错内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • pandas创建DataFrame的7种方法小结

    笔者在学习pandas,在学习过程中总结了一下创建dataframe的方法,通过查阅资料总结遗下几种方法,如果你有其他的方法欢迎留言补充. 练习代码 请点击此处下载 学习环境: 第一种: 用Python中的字典生成 第二种: 利用指定的列内容.索引以及数据 第三种:通过读取文件,可以是json,csv,excel等等. 本文例子就用excel, 上篇博客笔者已经用csv举例了.这里要注意,如果用excel请先安装xlrd这个包 这个文件笔者放在代码同目录 第四种:用numpy中的array生成

  • pandas创建DataFrame对象失败的解决方法

    目录 报错代码 报错翻译 报错原因 解决方法 创建DataFrame对象的四种方法 1. list列表构建DataFrame 2. dict字典构建DataFrame 3. ndarray创建DataFrame 4. Series创建DataFrame 报错代码 粉丝群一个小伙伴想pandas创建DataFrame对象,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下: import pan

  • 利用Pandas 创建空的DataFrame方法

    平时写pyhton的时候习惯初始化一些list啊,tuple啊,dict啊这样的.一用到Pandas的DataFrame数据结构也就总想着初始化一个空的DataFrame,虽然没什么太大的用处,不过还是记录一下: # 创建一个空的 DataFrame df_empty = pd.DataFrame(columns=['A', 'B', 'C', 'D']) 上面创建的DataFrame有4列,每一行没有成员是空的. 输出一下结果: Empty DataFrame Columns: [A, B,

  • pandas DataFrame创建方法的方式

    在pandas里,DataFrame是最经常用的数据结构,这里总结生成和添加数据的方法: ①.把其他格式的数据整理到DataFrame中: ②在已有的DataFrame中插入N列或者N行. 1. 字典类型读取到DataFrame(dict to DataFrame) 假如我们在做实验的时候得到的数据是dict类型,为了方便之后的数据统计和计算,我们想把它转换为DataFrame,存在很多写法,这里简单介绍常用的几种: 方法一:直接使用pd.DataFrame(data=test_dict)即可,

  • Pandas创建DataFrame提示:type object 'object' has no attribute 'dtype'解决方案

    目录 发现问题 原因分析: 解决方案: 总结 发现问题 pandas版本0.25.3 import pandas as pd symbol_info_columns = ['1', '持仓方向', '持仓量', '持仓收益率', '持仓收益', '持仓均价', '当前价格', '最大杠杆'] # v3 symbol_config = {'BTC': 'BTC-USDT-210924', 'LTC': 'LTC-USDT-210924', 'EOS': 'EOS-USDT-210924', 'ET

  • pandas创建DataFrame的方式小结

    如果你是一个pandas初学者,那么不知道你会不会像我一样.在学用列表或者数组创建DataFrame时理不清怎样用数据生成以及想要形状的的Dataframe,那么,现在,你不用自己琢磨了,我这里给你整理了一下,现在我们就来看看这三种生成Dataframe的方式. 1.用传入列表或者数组创建DataFrame 采用列表创建DataFrame nums = [[i for i in range(3)] for _ in range(10)] nums colu = [f'col_{i}' for i

  • pandas创建新Dataframe并添加多行的实例

    处理数据的时候,偶然遇到要把一个Dataframe中的某些行添加至一个空白的Dataframe中的问题. 最先想到的方法是创建Dataframe,从原有的Dataframe中逐行筛选出指定的行(类型为pandas的Series),并使用append方法进行添加.这种方法速度很慢,而且添加之后总会出现奇怪的问题,数据类型也不对. 较快的方法为,首先创建空的list,对原有的Dataframe进行逐行筛选,筛选出的行转化为dict类型,append进list中.全部添加完毕后,再将整个list转化为

  • 从列表或字典创建Pandas的DataFrame对象的方法

    介绍 每当我使用pandas进行分析时,我的第一个目标是使用众多可用选项中的一个将数据导入Pandas的DataFrame . 对于绝大多数情况下,我使用的 read_excel , read_csv 或 read_sql . 但是,有些情况下我只需要几行数据或包含这些数据里的一些计算. 在这些情况下,了解如何从标准python列表或字典创建DataFrames会很有帮助. 基本过程并不困难,但因为有几种不同的选择,所以有助于理解每种方法的工作原理. 我永远记不住我是否应该使用 from_dic

  • 详解Python中的type和object

    type  所有类是type生成的 a = 1 b = "abc" print("type a:{}".format(type(a))) print("type int:{}".format(type(int))) print("type b:{}".format(type(b))) print("type str:{}".format(type(str))) result: type a:<clas

  • Python中pandas模块DataFrame创建方法示例

    本文实例讲述了Python中pandas模块DataFrame创建方法.分享给大家供大家参考,具体如下: DataFrame创建 1. 通过列表创建DataFrame 2. 通过字典创建DataFrame 3. 通过Numpy数组创建DataFrame DataFrame这种列表式的数据结构和Excel工作表非常类似,其设计初衷是讲Series的使用场景由一维扩展到多维. DataFrame由按一定顺序的多列数据组成,各列的数据类型可以有所不同(数值.字符串.布尔值). Series对象的Ind

  • Python:type、object、class与内置类型实例

    Python:type.object.class Python: 一切为对象 >>> a = 1 >>> type(a) <class'int'> >>> type(int) <class'type'> type => int => 1 type => class => obj type是个类,生成的类也是对象,生成的实例是对象 >>>class Student: >>>

随机推荐