将相同的值分组到一列中

2024-09-23 16:30:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我对熊猫不熟悉。我在数据框中有6列payment1 payment2、payment3、payment4、payment5、payment6。现在这些列包含值5(信用卡)和10(现金)。基于此输入,我想创建新的列payment1(信用卡),其中所有5列都在一列中,所有10列都在另一列中payment(现金) input

输出应为output

payment(creadit) payment(cash)
5                   10
5                   10 
                    10
5                   10
5
5                   10 

Tags: 数据inputoutputcashpayment信用卡现金payment1
1条回答
网友
1楼 · 发布于 2024-09-23 16:30:02
  • 生成的数据与图像具有相同的输入形状
  • 从功能上讲,它是跨行轴的条件和
  • 这可以编码为r.eq(n).sum()*n
df = pd.DataFrame({'payment1': ['', '', '', '', '', '', '', '', '', ''],
 'payment2': [10, 5, '', 5, '', '', 5, '', 5, ''],
 'payment3': ['', '', 10, '', 10, 10, '', 10, '', ''],
 'payment4': ['', '', '', '', '', '', '', '', '', ''],
 'payment5': ['', '', '', 10, '', '', '', 5, '', ''],
 'payment6': ['', '', '', '', 5, '', '', '', '', 5]})

df = df.assign(**{"payment(creadit)":df.apply(lambda r: r.eq(10).sum()*10, axis=1),
            "payment(cash)":df.apply(lambda r: r.eq(5).sum()*5, axis=1)}).replace({0:""})

输出

^{tb1}$

相关问题 更多 >