datafram的条件列输出

2024-09-27 21:27:45 发布

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

我有一个熊猫数据框,看起来像这样:

nameA     statusA     nameB     statusB
a         Q           x         X
b         Q           y         X
c         X           z         Q
d         X           o         Q
e         Q           p         X
f         Q           r         Q

我想根据以下规则打印这个数据帧的行:输出列nameA如果statusAQ否则如果statusBQ输出列nameB。如果statusAstatusB都是Q,那么nameAnameB列都应该输出。你知道吗

有没有单程票?你知道吗

更新:

预期产量:

a,Q
b,Q
z,Q
o,Q
e,Q
f,Q,r,Q

Tags: 数据规则产量namebnamea单程票statusbstatusa
1条回答
网友
1楼 · 发布于 2024-09-27 21:27:45
> data['con'] = data['statusA'] + data['statusB']
> data.apply(lambda v: v['nameA'] if v['con'] == 'QX' else v['nameB'] if v['con'] == 'XQ' else v['nameA']+ ','+ v['nameB'], axis=1)
0     a
1     b
2     z
3     o
4     e
5    f,r
dtype: object

您可以使用字符串串联来产生精确的结果。你知道吗

像这样的事情

> data.apply(lambda v: v['nameA']+',Q' if v['con'] == 'QX' else v['nameB'] + ',Q' if v['con'] == 'XQ' else v['nameA']+ ',Q,' + v['nameB'] + ',Q', axis=1)
0        a,Q
1        b,Q
2        z,Q
3        o,Q
4        e,Q
5    f,Q,r,Q
dtype: object

相关问题 更多 >

    热门问题