Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为日期时间和布尔值指定pandas.read_csv的正确数据类型_Python_Pandas_Csv_Types_Type Conversion - Fatal编程技术网

Python 为日期时间和布尔值指定pandas.read_csv的正确数据类型

Python 为日期时间和布尔值指定pandas.read_csv的正确数据类型,python,pandas,csv,types,type-conversion,Python,Pandas,Csv,Types,Type Conversion,我正在将csv文件加载到熊猫数据帧中。对于每个列,如何使用dtype参数指定它包含的数据类型 我可以使用数字数据(底部的代码) 但是如何指定时间数据 和分类数据,如因子或布尔值?我尝试了np.bool\ucode>和pd.tslib.Timestamp但运气不佳 代码: 将熊猫作为pd导入 将numpy作为np导入 df=pd.read_csv(,dtype={'A':np.int64,'B':np.float64}) 阅读csv有很多选项,可以处理您提到的所有情况。您可能希望尝试dtype

我正在将csv文件加载到熊猫数据帧中。对于每个列,如何使用
dtype
参数指定它包含的数据类型

  • 我可以使用数字数据(底部的代码)
  • 但是如何指定时间数据
  • 分类数据,如因子或布尔值?我尝试了
    np.bool\ucode>和
    pd.tslib.Timestamp
    但运气不佳
代码:

将熊猫作为pd导入
将numpy作为np导入
df=pd.read_csv(,dtype={'A':np.int64,'B':np.float64})

阅读csv有很多选项,可以处理您提到的所有情况。您可能希望尝试dtype={'A':datetime.datetime},但通常不需要dtype,因为pandas可以推断类型

对于日期,则需要指定解析日期选项:

parse_dates : boolean, list of ints or names, list of lists, or dict
keep_date_col : boolean, default False
date_parser : function
一般来说,要转换布尔值,您需要指定:

true_values  : list  Values to consider as True
false_values : list  Values to consider as False
将列表中的任何值转换为布尔值true/false。对于更一般的转换,您很可能需要

转换器:用于转换某些列中的值的可选函数。键可以是整数或列标签


尽管很密集,但在这里查看完整列表:

查看日期参数。关于boolen值:您的数据是如何存储的?NumPy状态
np.bool\uu
用于存储为字节的布尔值(可能您使用的是字符串?)不知道转换器。我会调查的。但是指定为整数的类别呢?在我的例子中,我有很多这样的特性,因为它们既不是序数、间隔也不是比率,所以最好能将它们指定为标称(分类)。如果分类数据是字符串,则将它们保留为字符串,并在数据帧中读取后转换为整数(或者可以使用转换器转换特定列)。如果您有类似int的类别,那么您不能将它们作为int数据类型读入吗?数据是整数,但它们应该被视为类别。否则,许多机器学习模型将以错误的方式使用这些功能。我将跟随你。我的意见是,您可以在阅读CSV时进行转换,也可以在拥有数据帧后进行转换。我个人认为后者更容易一些。在读入数据框之后,假设您希望将列“A”分类。有一个小映射:def MapA(int1):如果int1==0:return'category1'elif int1==1:return'category2'等等。。。并创建一列新的分类数据
true_values  : list  Values to consider as True
false_values : list  Values to consider as False