假设我有一个DataFrame
:
>>> df = pd.DataFrame({'a1':[1,2],'a2':[3,4],'b1':[5,6],'b2':[7,8],'c':[9,0]})
>>> df
a1 a2 b1 b2 c
0 1 3 5 7 9
1 2 4 6 8 0
>>>
我想合并(也许不是合并,而是连接)名字的第一个字母相等的列,比如a1
和{c
列,它本身没有任何其他类似的列,因此我希望它们不要抛出错误,而是将NaN
s添加到它们中。在
我想以一种方式合并,它将把一个宽的DataFrame
变成一个长的DataFrame
,基本上类似于宽到长的修改。在
我已经有了这个问题的解决方案,但唯一的问题是它非常低效,我想要一个更高效、更快的解决方案(与我的:p不同),我目前有一个for
循环和一个try
except
(呃,听起来已经很糟糕了)代码,例如:
我想用更好的代码获得同样的结果。在
我建议}。要解决重复项,需要以cumcounted列为轴心。在
melt
,然后是{可以改写为
^{pr2}$如果性能很重要,可以使用
pd.concat
替代:我们可以尝试groupby列(
axis=1
):输出:
^{pr2}$使用字典理解:
相关问题 更多 >
编程相关推荐