我有2个pandas数据框,例如 第一数据农场
index a b c d
0 4 5 3 2
1 1 10 21 34
2 3 32 1 45
3 56 42 42 23
第二个数据框
index a b c d
LL 2 2 2 1
UL 42 2 1 8
我想要这样的例外输出。
index a b c d result
0 4 5 3 2 [5,3]
1 1 10 21 34 [1,10,21,34]
2 3 32 1 45 [32,1,45]
3 56 42 42 23 [56,42,42,23]
在此,我将第二个数据帧行与第一个数据帧行进行比较。条件是,如果第一个数据帧的值小于第二个数据帧的LL行,它将被添加到结果列中;如果第一个数据帧的值大于第二个数据帧的UL行,它将被添加到结果列中。
答案 0 :(得分:1)
您可以做到
cond = (first_df<second_df.loc['LL',:]) | (first_df>second_df.loc['UL',:])
first_df['result'] = first_df[cond].apply(lambda x : list(x.dropna()), axis=1)
假设index
是两个数据框中的索引,如果不是,则可以这样做
first_df.set_index('index', inplace=True)
second_df.set_index('index', inplace=True)
a b c d result
index
0 4 5 3 2 [5.0, 3.0]
1 1 10 21 34 [1.0, 10.0, 21.0, 34.0]
2 3 32 1 45 [32.0, 1.0, 45.0]
3 56 42 42 23 [56.0, 42.0, 42.0, 23.0]