我有2个已过滤的数据框
df_pass = total_avg[total_avg>3] produces the following dataframe
AAPL GOOGL GOOG MSFT
1 3.401017 NaN NaN 3.255119
2 NaN NaN NaN NaN
3 4.16666 NaN NaN 3.264101
4 3.049794 4.331 NaN NaN
我在另一个DF上有另一个过滤器,但DF的布局与第一个相同。因此,此代码生成以下DF结果
df_min_pass = total_min[total_min>-10]
AAPL GOOGL GOOG MSFT
1 NaN NaN -2.099 NaN
2 NaN NaN -6.08 NaN
3 NaN -8.319 -1.86 -7.3
4 NaN -7.304 -6.92 NaN
请记住,这只是DF的一个示例。他们有更多的专栏。我想得到一个结合了do的结果数据帧。因此,如果它通过了两个条件,它将在另一个DF中显示结果,否则显示NaN,如果它不满足麻烦的条件。我尝试了许多组合,例如
df_combo_all = (df_pass[df_pass >3]) & (df_min_pass[df_min_pass >-10])
df_combo_all = df_combo_all[(df_pass[df_pass >3]) & (df_min_pass[df_min_pass >-10])]
单独使用过滤器但我一直收到此错误
TypeError:ufunc' bitwise_and'输入类型不支持,并且输入无法根据投射规则安全地强制转换为任何支持的类型'安全'。
似乎存在多面具问题以及其他关于按位错误的问题,但我似乎无法找到适合我的问题。任何人都可以请帮助
答案 0 :(得分:0)
mask
df_pass.mask(df_min_pass.isnull())
输出:
AAPL GOOGL GOOG MSFT
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
3 NaN NaN NaN 3.264101
4 NaN 4.331 NaN NaN