首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将熊猫数据转换为混合数据类型的考拉

如何将熊猫数据转换为混合数据类型的考拉
EN

Stack Overflow用户
提问于 2020-08-15 21:10:31
回答 1查看 1.9K关注 0票数 0

我正在使用将一只熊猫Dataframe转换成考拉数据框架。

代码语言:javascript
复制
kdf = ks.DataFrame(pdf)

这将导致错误消息“需要一个整数(got类型str)”。

我尝试添加一个dtype的str,以强制考拉数据帧为字符串类型。。。

代码语言:javascript
复制
 df = ks.DataFrame(pdf, dtype='str')

使用databricks扩展,在vs代码中添加dtype可以很好地工作,但是在azure工作区中执行时会产生一个AssertionError。

看起来,必须使用与vs代码databricks扩展不同版本的考拉。

我怎样才能让这个在蔚蓝数据库中工作呢?

我如何知道考拉蓝数据库使用的是什么版本,以及databricks与代码扩展使用的是什么版本的考拉?

我不能仅仅使用pip列表来查找考拉的vs代码版本,因为它是一个扩展,而不是一个已安装的软件包。

在这方面的任何帮助都将受到感激。

劳拉

EN

回答 1

Stack Overflow用户

发布于 2020-09-23 12:05:11

通过打印module.__version__,您可以找到任何导入库的版本。

例如,数据库笔记本中的print(ks.__version__)将打印类似于1.0.1的东西。

至于真正的问题:在很长一段时间里,Pandas没有一个特定的字符串的dtype,它们只是对象。字符串dtype是最近添加的(我认为是Pandas 1.0+)。问题有两个:

  1. 考拉似乎还不理解这种字符串的dtype。您不能像前面提到的那样在构造函数中传递混合的dtype。因此,您应该将字符串列转换回object .
  2. ,如果不指定dtype,考拉将尝试聪明并推断对象列的dtype。这有时会失败,例如,如果列都为空.

因此,我们有这种恼人的情况,我们知道列dtype,但没有办法指定考拉,它应该使用什么dtype。解决方法是用空字符串填充空值,这样dtype的推断就可以工作:

代码语言:javascript
复制
for stringcol in df.select_dtypes('string').columns:
  df[stringcol] = df[stringcol].fillna("").astype("object")

ks.DataFrame(df)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63430840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档