在apply函数(python 2)中解包的值太多

2024-10-02 00:34:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个简单的函数来分割字符串。在

def split2(target):
   (key, host) = target.split('_')
   return (key, host)

(combined['host'], combined['timestamp']) = combined['key'].apply(split2)

combined['key']是一个pandas系列,由类似于'ibmserver_4/12/2007'的字符串组成

经过多次尝试,我仍然有ValueError:太多的值无法解包。如果我把split2函数中的返回参数减少为1,那就可以了。在

有人能告诉我上面的代码有什么问题吗?我应该如何纠正?非常感谢。在


Tags: key函数字符串hosttargetpandasreturndef
1条回答
网友
1楼 · 发布于 2024-10-02 00:34:04

更简单的方法是直接用pandas拆分str,使用expand=True创建单独的列,例如:

>>> combined['key'].str.split('_', expand=True)
           0          1
0  ibmserver  4/12/2007

将其分配给多个列的正确方法是:

^{pr2}$

要使函数正常工作,您需要将返回的元组转换为一个序列,例如:

>>> combined[['host', 'timestamp']] = combined['key'].apply(split2).apply(pd.Series)

相关问题 更多 >

    热门问题