我有一个数据帧,看起来像这样:
dic = {'A':['PINCO','PALLO','CAPPO','ALLOP'],
'B':['KILO','KULO','FIGA','GAGO'],
'C':[['CAL','GOL','TOA','PIA','STO'],
['LOL','DAL','ERS','BUS','TIS'],
['PIS','IPS','ZSP','YAS','TUS'],
[]]}
df1 = pd.DataFrame(dic)
我的目标是为每一行插入A
的元素,作为C
列中包含的列表的第一项。同时,我想将B
的元素设置为C
中包含的列表的最后一项。在
我通过使用以下代码行实现了我的目标:
^{pr2}$有没有一种更优雅更有效的方法来实现我的目标,也许是使用一些熊猫的功能?我想尽量避免for循环。在
对
df1.values.tolist()
使用列表理解时间测试
灵感来自于Ted的解决方案,但没有修改}列:
A
和{使用
^{pr2}$apply
,您不会编写显式循环:一个好的一般规则是避免将
apply
与axis=1
一起使用,因为遍历行很费时可以将A列和B列中的每个元素转换为带有
map
的列表,然后在行中求和。在另一种选择是使用
^{pr2}$apply
和axis=1,它在我的计算机上运行速度慢了15倍,在100万行上相关问题 更多 >
编程相关推荐