gpt4 book ai didi

python - 跨多个数据框的 bool 比较

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:16 24 4
gpt4 key购买 nike

我有一个问题,我想比较多个数据帧的值。这是一个片段示例:

data0 = [[1,'01-01'],[2,'01-02']]
data1 = [[11,'02-30'],[12,'02-25']]
data2 = [[8,'02-30'],[22,'02-25']]
data3 = [[7,'02-30'],[5,'02-25']]
df0 = pd.DataFrame(data0,columns=['Data',"date"])
df1 = pd.DataFrame(data1,columns=['Data',"date"])
df2 = pd.DataFrame(data2,columns=['Data',"date"])
df3 = pd.DataFrame(data3,columns=['Data',"date"])
result=(df0['Data']| df1['Data'])>(df2['Data'] | df3['Data'])

我希望可以看到的是,如果 df0 rowXdf1 中的值rowX 大于 df2 rowXdf3 rowX 返回 True否则它应该是 false。在上面的代码中,df1 中的 11 大于 8 和 7(分别为 df2 和 3),因此结果应该为 True,然后对于第二行,2 或 12 都不大于 22 (df2)所以应该是假的。然而,结果给了我

False,False

代替

True,False

有什么想法或帮助吗?

最佳答案

问题

对于您的数据:

>>> df0['Data']
0 1
1 2
Name: Data, dtype: int64
>>> df1['Data']
0 11
1 12
Name: Data, dtype: int64

你用 |按位或:

>>> df0['Data']| df1['Data']
0 11
1 14
Name: Data, dtype: int64
>>> df2['Data']| df3['Data']
0 15
1 23
Name: Data, dtype: int64

对单个数字执行此操作:

>>> 1 | 11
11
>>> 2 | 12
14

这不是你想要的。

解决方案

您可以使用 np.maximum 从每个系列中找到最大值:

>>> np.maximum(df0['Data'], df1['Data']) > np.maximum(df2['Data'], df3['Data'])
0 True
1 False
Name: Data, dtype: bool

关于python - 跨多个数据框的 bool 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48017713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com