如果a的值大于或小于b的值,我想比较两个数据帧并将布尔值放入其他数据帧。
数据框A:
window/document
所以我想做一个数据框C:用零和一填充。 试试这个:
AA AAPL FB GOOG TSLA XOM
Date
2018-01-02 55.169998 168.987320 181.419998 1065.000000 320.529999 80.749893
2018-01-03 54.500000 168.957886 184.669998 1082.479980 317.250000 82.335831
2018-01-04 54.700001 169.742706 184.330002 1086.400024 314.619995 82.449791
2018-01-05 54.090000 171.675278 186.850006 1102.229980 316.579987 82.383316
2018-01-08 55.000000 171.037628 188.279999 1106.939941 336.410004 82.753677
Dataframe B:
AA AAPL FB GOOG TSLA XOM
Date
2018-11-15 38.5328 215.266614 155.709600 1119.715189 300.053598 80.719426
2018-11-16 38.4318 214.728909 155.239400 1117.648390 301.874999 80.678900
2018-11-19 38.2614 214.097401 154.586801 1114.755590 303.234399 80.645867
2018-11-20 38.0976 213.179504 153.916600 1111.723590 304.595398 80.545809
2018-11-21 37.9132 212.312794 153.373000 1109.219391 305.548398 80.452133
答案 0 :(得分:3)
如果行数和列数相同,则将布尔掩码转换为True/False
到1/0
映射的整数:
df = pd.DataFrame(data.values > sma20.values).astype(int))
或使用np.where
:
df = pd.DataFrame(np.where(data.values > sma20.values, 1, 0))
还可以设置新的列或索引名称(或同时设置两者):
df = pd.DataFrame(data.values > sma20.values).astype(int),
index=data.index, columns=data.columns)
df = pd.DataFrame(np.where(data.values > sma20.values, 1, 0),
index=sma20.index, columns=sma20.columns)