熊猫read_csv dtype定义:int,int64,'Int64'

时间:2020-02-25 20:50:02

标签: pandas dataframe file-io

有人可以指出我的正确方向来理解在pandas.read_csv期间定义dtype的(似乎)不一致之处吗?

dtype = int#->如果值为空,则会产生错误
dtype = int32,int64和Int64#->未定义
dtype ='Int64'#->正确读取csv文件为int并带有空白值

  • 为什么“ Int64”需要引号而不是str,float,int,object?
  • 我没有找到明确定义pandas.read_csv dtypes有效列表的引用。这个地方存在吗?
import pandas as pd; print(pd.__version__)
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

MY_DTYPES = {
    'date_string': str,
    'description': str,
#    'ValueError_Integer_column_has_NA_values': int,
#    'int32_is_not_defined': int32,
#    'int64_is_not_defined': int64,
#    'Int_64_is_not_defined': Int64,
    'Int64_with_quote_and_NaN': 'Int64', # !! THIS WORKS !!
    'quantity': float,
    'total': float}

f = 'dataset.csv'
df = pd.read_csv(f, dtype = MY_DTYPES)
df.head(15)
   date_string  description  Int64_with_quote_and_NaN  quantity   total
0       201202   "Lorem ips                       513     186.0     4.0
1       200909     um dolor                       601     502.0    13.0
2       201701          sit                       NaN     462.0    20.0
3       201401        amet,                       513     934.0   206.0
4       201202  consectetur                       513       NaN   194.0
5       200710   adipiscing                       602     570.0   930.0
6       200501        elit,                       513     160.0     NaN
7       200808          sed                       NaN     508.0   461.0
8       201906           do                       513     316.0     3.0
9       201009      eiusmod                       NaN     994.0     1.0
10         NaN          NaN                       513     709.0     0.0
11      201905   incididunt                       513     318.0     6.0
12      201612           ut                       513       NaN     1.0
13      201506       labore                       513     901.0    74.0
14      201002          NaN                       625      33.0   739.0

0 个答案:

没有答案