【发布时间】:2019-06-26 15:07:52
【问题描述】:
我今天在工作中遇到了这个问题,我想知道是否有有效的方法来解决这个问题。
基本上我有一个看起来像这样的数据框
df = pd.DataFrame([1,2,3], columns = ['a'])
我还有一个返回元组的函数。 (请注意,这只是一个最小的例子,我的问题是不同的)
compute = lambda x: (2*x, 3*x)
我需要找到一种方法来做一些理想情况下看起来像这样的事情:
(df['b'], df['c']) = df['a'].apply(compute)
不幸的是,这种语法不起作用,我无法用另一种方式来实现它。
唯一类似的问题是this ,但该解决方案似乎真的很“hacky”,我相信有更好的方法来做到这一点。
谢谢!!
【问题讨论】:
-
可以做类似
df['b'], df['c'] = zip(*df['a'].map(compute))的事情,但它可能会比只使用矢量化方法来创建每个要慢。
标签: python pandas dataframe tuples