将数据框转换为列表时出错

Posted

技术标签:

【中文标题】将数据框转换为列表时出错【英文标题】:Getiing error while converting a dataframe to a list 【发布时间】:2019-02-17 19:36:39 【问题描述】:

以下是代码,将数据导入数据框但无法将其转换为列表。获取 TypeError:'list' 对象不可调用

import pandas
import numpy
import random
dataframe = pandas.read_csv('data.csv')
list= ['Gender']
dataset = dataframe.drop(list, axis=1)
print(list(dataset))

【问题讨论】:

【参考方案1】:

在 python 中,您可以覆盖语言关键字和数据类型,在您的情况下 - list 数据类型。 看看:

print('type of list: 0'.format(type(list)))
list = ['Gender']
print('type of list: 0'.format(type(list)))

输出:

type of list: <type 'type'>
type of list: <type 'list'>

我建议将您的变量名称更改为 list 以外的其他名称

【讨论】:

【参考方案2】:

问题是代码变量list作为变量名,最好使用L

解决方案是通过list = builtins.list 重新分配list 或在重命名变量后重新启动您的IDE:

import pandas as pd
import numpy as np
import random
import builtins

#reassign list
list = builtins.list

dataframe = pd.read_csv('data.csv')
L = ['Gender']
dataset = dataframe.drop(L, axis=1)
#if want columns names in list
print(list(dataset))
#if want all values of df to nested lists
print(dataset.values.tolist())

【讨论】:

@user3483203 - 谢谢。 也可以del list【参考方案3】:

您创建了一个名为list 的变量,因此当您尝试调用list 构造函数时会遇到错误,因为list 现在指的是list,而不是类型构造函数。不要使用内置名称作为变量名。

你也可以只使用dataset.columns.tolist()

【讨论】:

以上是关于将数据框转换为列表时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 C# ASP.net 中将文本框内容转换为 DateTime 格式时出错

将 R data.frame 强制转换为 nz.data.frame 时出错

将数据类型 varchar 转换为数字时出错。插入语句[重复]

Pandas 尝试将字符串转换为整数时出错

尝试将列表拆分为较小的列表时出错

将数据类型 int 转换为 nvarchar 时出错