pandas - pandas read_csv dtype 定义:int,int64,'Int64'
问题描述
有人能指出我在 pandas.read_csv 期间定义 dtype 的方式(看似)不一致的好方向吗?
dtype = int # --> 如果空白值产生错误
dtype = int32、int64 和 Int64 # --> 未定义
dtype = 'Int64' # --> 正确读取 csv 文件为整数和空白值
- 为什么 'Int64' 需要引号,而 str、float、int、object 不需要引号?
- 我没有找到明确定义 pandas.read_csv 的有效 dtype 列表的参考。这是否存在于某处?
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
解决方案
推荐阅读
- powershell - Ansible - 如何将数组作为参数传递给powershell脚本
- python - 让机器人在完成工作后自动退出
- python - 为什么我在原子编辑器中看不到描述函数的完整输出?
- c++ - 使用 epoll 边缘触发器的套接字上的数据过多
- java - 2 字节 UTF-8 序列的无效字节 2:XML 保存为字符串变量
- php - 连接数组php的递归键
- node.js - 因为 Mongoose.model 而开玩笑没有关闭
- elasticsearch - 在 ElasticSearch 中查询和返回子文档/嵌套对象
- reactjs - ReactJS , 如何根据用户在 changeLanguage() 中选择切换当前语言标志
- php - Wordpress PHP 此刻服务器在做什么?