【发布时间】:2023-01-19 17:21:40
【问题描述】:
我有一个存储在 pandas 数据框df 中的字符串列表,列名是文本(即df['text'])。
我有一个函数f(text: str) -> (int, int, int)。
现在,我想做以下事情。
df['a'], df['b'], df['c'] = df['text'].apply(f)
如何使用函数的三个返回值创建三列?
上面的代码给出了错误
ValueError: too many values to unpack (expected 3)
我试过了
df['a', 'b', 'c'] = df['text'].apply(f)
但我得到一列名称为'a', 'b', 'c'
注意:
- SO 中有一个similar question,但是当我从那里使用以下解决方案时,我再次遇到错误。
df[['a', 'b', 'c']] = df['text'].apply(f, axis=1, result_type='expand')错误是
f() got an unexpected keyword argument 'axis' f() got an unexpected keyword argument 'result_type' #(once I remove the axis=1 parameter)- 注意
df还有其他列
- 注意
【问题讨论】: