基于多列的Pandas条件计算

时间:2018-01-10 21:32:47

标签: python pandas

考虑这个数据帧:

data = {'A':[1.5, 2, 3, 4], 'B':[3, 5, 8, 7], 'C':['abc', 'def', 'zyw', 'lol'], 'D':['AAA', 'AAA', 'BBB', 'CCC']}

df = pd.DataFrame(data)

我想根据条件A计算x <= 2.5 & D == 'AAA'列的总和,并将结果附加到同一数据框,但不包含与条件匹配的行。字符串应该连接在一起。

所以,我想出了这个:

logic = (df['A'] <= 2.5) & (df['D'] == 'AAA')
df_1 = df[logic].sum()
df_2 = df[~logic]
df_2.append(df_1, ignore_index=True)

返回

    A   B   C       D
0   3.0 8   zyw    BBB
1   4.0 7   lol    CCC
2   3.5 8   abcdef AAAAAA

还有其他更多的pythonic(oneliner)解决方案吗?

0 个答案:

没有答案