python 判断两列有重复数据_python – 在DataFrame中堆叠两列,重复其他列

我有一个像这样的结构的pandas DataFrame:

df = pd.DataFrame( [

[ 'foo1','a','z','bar1',1,4 ],[ 'foo2','b','y','bar2',2,5 ],[ 'foo3','c','x','bar3',3,6 ]

] )

df.columns = [ 'foo','let1','let2','bar','num1','num2' ]

print( df )

foo let1 let2 bar num1 num2

0 foo1 a z bar1 1 4

1 foo2 b y bar2 2 5

2 foo3 c x bar3 3 6

我想堆叠列let1和let2,并添加一个标签告诉它们来自哪里. num1和num2也是如此.最后,我想实现这个目标:

foo let letval bar num numval

0 foo1 let1 a bar1 num1 1

1 foo2 let1 b bar2 num1 2

2 foo3 let1 c bar3 num1 3

3 foo1 let2 z bar1 num2 4

4 foo2 let2 y bar2 num2 5

5 foo3 let2 x bar3 num2 6

到目前为止,我已经这样做了:

let = pd.concat( [ df.let1,df.let2 ] )

num = pd.concat( [ df.num1,df.num2 ] )

df = df.drop( ['let1','num2' ],axis=1 )

df = pd.concat( [ df,df ] )

df[ 'letval' ] = let

df[ 'numval' ] = num

print( df )

foo bar letval numval

0 foo1 bar1 a 1

1 foo2 bar2 b 2

2 foo3 bar3 c 3

0 foo1 bar1 z 4

1 foo2 bar2 y 5

2 foo3 bar3 x 6

但是,我很确定有一种更简单的方法可以实现这一点,而无需复制到虚拟变量和此类变通方法.

有任何想法吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值