Parsing Pandas read_表以十六进制形式读取混合类型读取字符串
我有以下代码:Parsing Pandas read_表以十六进制形式读取混合类型读取字符串,parsing,pandas,dataframe,Parsing,Pandas,Dataframe,我有以下代码: los\u代码、age\u代码和race\u代码有另一个包含代码的表格。例如,race\u code是: race_code race_text 0 0000 All races 1 1XXX White, non-Hispanic 2 2XXX Black, non-Hispanic
los\u代码
、age\u代码
和race\u代码
有另一个包含代码的表格。例如,race\u code
是:
race_code race_text
0 0000 All races
1 1XXX White, non-Hispanic
2 2XXX Black, non-Hispanic
3 3XXX Hispanic
4 4XXX Asian or Pacific Islander
5 5XXX American Indian or Alaskan Native
6 NRXX Not reported
阅读后,除代码为0000
外,所有这三列都有NaN
条目。如果列条目是1XXX
到NRXX
中的任何一个,则该条目变为NaN
由于0000
条目,熊猫似乎正在将列读取为int
,但在读取带有X
的条目后,熊猫会感到困惑(可能会将其混淆为十六进制)
如何强制熊猫将这些条目作为字符串读取
此外,我还得到了错误:
数据类型警告:列(1,4,5,6,7,8,9)的类型混合。在导入时指定dtype选项或将低内存设置为False。
交互性=交互性,编译器=编译器,结果=结果)
使用
'object'
代替'str'
col_names = {'age_code':'object', 'los_code':'object', 'race_code':'object'}
考虑使用类似于col\u dtypes
的内容,而不是col\u names
作为变量名。也可以考虑阅读这些问题的答案。
另外,这是一个警告,而不是你得到的错误
编辑 好的,我看了你的数据和代码。这是我在简陋的MS Excel中打开您的表格时的一个屏幕截图。你能告诉我年龄码、种族码和洛杉矶码的值在哪里吗?因为如果列中没有数据,Pandas将在那里插入NaN。还请注意屏幕右下角截图中Excel生成的汇总统计信息。平均值=0,最小值=0,最大值=0,总和=0,计数=410。有410个读数,全部为零。我选择了感兴趣的三列中的所有行。正在读取的表中缺少数据 然后,分别读取年龄代码、种族代码和洛杉矶代码表似乎没有问题。最后,根据警告中的提示,在
pd.read\u table()
中传递low\u memory=False
,而不是dtype=col\u names
我认为你的问题得到了回答,因为缺失值在你的数据中。它们不是由熊猫引起的,也不是您的代码造成的。事实上,我在问这个问题之前已经试过了,但没有成功。我已经编辑了这个问题,添加了GitHub.interest上代码的链接。因为一旦你通过了
dtype
kwarg,Pandas应该只使用该格式,并以该格式键入所有内容。让我明天运行一些测试,并相应地更新答案。检查答案中的编辑。问题在于您的数据,而不是您的代码或数据。此问题已回答。感谢您查看Kartik
col_names = {'age_code':'object', 'los_code':'object', 'race_code':'object'}