python-对多个数据框的熊猫元素条件操作

我想基于条件操作(在元素上)对具有相同结构(相同索引,相同列)的多个数据框的组合来创建一个数据框.

在这里,我创建了三个具有相似结构的数据框.

df1 = pd.DataFrame(np.random.rand(5,3), columns=['a','b','c'],index = pd.date_range(start='2000.01.01', periods=5, freq='D'))
df2 = pd.DataFrame(np.random.rand(5,3), columns=['a','b','c'],index = pd.date_range(start='2000.01.01', periods=5, freq='D'))
df3 = pd.DataFrame(np.random.rand(5,3), columns=['a','b','c'],index = pd.date_range(start='2000.01.01', periods=5, freq='D'))

df1
                   a         b         c
2000-01-01  0.457567  0.157506  0.185594
2000-01-02  0.709991  0.486635  0.839173
2000-01-03  0.503184  0.640214  0.895055
2000-01-04  0.940231  0.591708  0.019716
2000-01-05  0.246132  0.596872  0.437000

df2
                   a         b         c
2000-01-01  0.722588  0.696100  0.176172
2000-01-02  0.275177  0.162525  0.347674
2000-01-03  0.248735  0.887237  0.175126
2000-01-04  0.444136  0.337881  0.830616
2000-01-05  0.526365  0.803296  0.574811

df3 
                   a         b         c
2000-01-01  0.392965  0.107987  0.139133
2000-01-02  0.751523  0.658844  0.174854
2000-01-03  0.509276  0.380294  0.406262
2000-01-04  0.669822  0.079491  0.233737
2000-01-05  0.659077  0.094545  0.826730

这是我的伪代码

df4 = if (df1 > 0.5 and df2 <0.3 and df3 > 0.6, 1, 0)

最简单,最有效的代码是什么?

解决方法:

大熊猫

(df1.gt(.5) & df2.lt(.3) & df3.gt(.6)).astype(int)

            a  b  c
2000-01-01  0  0  0
2000-01-02  1  0  0
2000-01-03  0  0  0
2000-01-04  0  0  0
2000-01-05  0  0  0

与一些numpy v1

pd.DataFrame(
    (
        (df1.values > .5) &
        (df2.values < .3) &
        (df3.values > .6)
    ).astype(int),
    df1.index, df1.columns
)

            a  b  c
2000-01-01  0  0  0
2000-01-02  1  0  0
2000-01-03  0  0  0
2000-01-04  0  0  0
2000-01-05  0  0  0

与一些numpy v2

pd.DataFrame(
    np.where(
        (df1.values > .5) &
        (df2.values < .3) &
        (df3.values > .6), 1, 0
    ),
    df1.index, df1.columns
)

            a  b  c
2000-01-01  0  0  0
2000-01-02  1  0  0
2000-01-03  0  0  0
2000-01-04  0  0  0
2000-01-05  0  0  0

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...