如何解决如何从apply方法获取map的第二个参数?
我有以下数据集:
0 [(3,5),(6,8),(9,10)]
1 [(0,2),(5,7),10)]
2 []
3 [(1,11)]
4 [(0,(8,10)]
5 [(5,6)]
6 [(0,1)]
如下所示:
0 [(3,10)] [2,2,1]
1 [(0,1]
2 [] []
3 [(1,11)] [10]
4 [(0,10)] [7,2]
5 [(5,6)] [1]
6 [(0,1)] [1]
我想获取每个元组的长度(元组的第二个元素减去第一个元素)。
我最喜欢的输出是
dt['C2] = dt['C1'].apply(list(map(lambda x: x[1]-x[0])))
我当前正在使用此代码:
map() must have at least two arguments
它出现以下错误:
apply
由于我使用的是map
方法,我希望apply
会自动获得git clean -dfx
的第二个参数,为什么它没有发生?
解决方法
赋予.apply()
的lambda分别应用于列中的每一行。因此,您可以使用列表理解来做您想要做的事情:
data = {"C1":[[(3,5),(6,8),(9,10)],[(0,2),(5,7),[],[(1,11)],(8,[(5,6)],1)]]}
dt = pd.DataFrame(data)
print(dt)
>>> dt['C2'] = dt['C1'].apply(lambda lst: [tup[1] - tup[0] for tup in lst])
>>> dt
C1 C2
0 [(3,10)] [2,2,1]
1 [(0,1]
2 [] []
3 [(1,11)] [10]
4 [(0,10)] [7,2]
5 [(5,6)] [1]
6 [(0,1)] [1]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。