python 数据框合并之后行变多了_python – 将pandas数据框重塑为与重复行一样多的列...

因为数据以交替模式出现,我们可以分两步概念化转换.

步骤1:

从…来

a,a,a

b,b,b

a,a,a,b,b,b

第2步:删除冗余列.

以下解决方案将reshape应用于DataFrame的值;重塑的参数是(-1,df.shape [1] * 2),它表示’给我一个框架,其中包含两倍的列和尽可能多的行.

然后,我根据您的数据布局硬连线过滤器的列索引:[0,1,4,5].生成的numpy数组有4列,因此我们将它与正确的列名一起传递给DataFrame构造函数.

这是一个不可读的解决方案,它依赖于df布局并以错误的顺序生成列;

import pandas as pd

df = pd.DataFrame({'Place' : ['A', 'A', 'B', 'B', 'C', 'C'], 'Var' : ['All', 'French', 'All', 'German', 'All', 'Spanish'], 'Values' : [250, 30, 120, 12, 200, 112]})

df = pd.DataFrame(df.values.reshape(-1, df.shape[1] * 2)[:,[0,1,4,5]],

columns = ['Place', 'All', 'Value', 'Language'])

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值