我有两个这样的数据帧:
dfA=pd.DataFrame([[1,2,3],[4,5,6]])
dfB=pd.DataFrame([[True,False,False],[False,True,False]])
如何创建一个基于相同索引的新数据帧
2 ** (dfA+1) only if dfB is true
2 ** (dfA) only if dfB is false.
我想要实现的是这样一个数据帧:
df_output = pd.DataFrame([[4,4,8],[16,64,64]])
谢谢!你知道吗
Tags:
你可以用数据帧掩码地址:
这将检查dfB,如果为True,则从原始数据帧(
(2 ** dfA)
)获取值,如果为false,则从其他数据帧(2 ** (dfA+1)
)获取值。你知道吗这类似于numpy的where函数:
但是,它会丢失索引和列,因此您可能需要将结果包装到数据帧构造函数中:
相关问题 更多 >
编程相关推荐