pandas dataframe的条件列输出

时间:2015-05-19 09:38:47

标签: python pandas dataframe

我有一个像这样的pandas DataFrame:

nameA

我想根据以下规则打印此数据框的行:如果statusAQ,则输出列statusB如果QnameB则为statusA输出列statusB。如果QnameA都是nameB,则应输出a,Q b,Q z,Q o,Q e,Q f,Q,r,Q css/styles.css列。

这是否有一个oneliner?

更新

预期产出:

js

1 个答案:

答案 0 :(得分:0)

> 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