2

我有一个数据框,其中有一列,str另一列带有int数据

import pandas as pd
from databricks import koalas as ks

df = pd.DataFrame({'a': [1, 2, 3, 4, 5, 6, 7], 
                   'b': ['7', '6', '5', '4', '3', '2', '1'], 
                   'letter': ['a', 'a', 'b', 'a', 'b', 'b', 'a']})

kdf = ks.from_pandas(df)

以下操作适用于熊猫...

df.groupby('letter')[['a', 'b']].apply(lambda x: x.values.tolist()) 

......但不是在考拉:(

kdf.groupby('letter')[['a', 'b']].apply(lambda x: x.values.tolist())

它抛出错误:

ArrowInvalid: Could not convert '7' with type str: tried to convert to int64

我不清楚为什么会出现错误以及如何解决它。任何想法?

更新:

简化问题,我注意到它kdf.apply(lambda x: [1, 2], axis=1)有效,但kdf.apply(lambda x: [1, "2"], axis=1)抛出错误。在 koalas 数据框中似乎不可能有一个包含不同类型元素的列表。是这样吗?什么是替代方案?

4

0 回答 0