我得到这样的数据框:
A YEAR2000 B YEAR2001 C YEAR2002
a 1 b 3 a 7
b 3 c 5 e 6
c 6 d 2 f 3
e 1 g 0
对每两列进行切片,然后重新组织以形成新的数据框,如下所示:
type YEAR2000 YEAR2001 YEAR2002
a 1 7
b 3 3
c 6 5
d 2
e 1 6
f 3
g 0
我已经尝试过,pd.concat()
但是出了点问题!谢谢。
两次使用合并将实现此目的。
df1 = pd.DataFrame([['a', 1], ['b', 3], ['c', 6]],columns=['letter', 'number'])
df2 = pd.DataFrame([['b', 3], ['c', 5], ['d', 2], ['e', 1]],columns=['letter', 'number'])
df3 = pd.DataFrame([['a', 7], ['e', 6], ['f', 3], ['g', 0]],columns=['letter', 'number'])
pd.merge(pd.merge(df1, df2, how='outer', on='letter'), df3, how='outer', on='letter')
为了更干净的外观:
df1.merge(df2, how='outer', on='letter').merge(df3, how='outer', on='letter')
如果您有多个数据框,请将它们放入列表中,并使用带有reduce的理解。
from functools import reduce
dfs = [df1, df2, df3]
reduce(lambda left, right: left.merge(right, how='outer', on='letter'), dfs)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句