考虑这个数据帧:
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)解决方案吗?