我创建了一个pandas数据框并希望根据某些布尔逻辑筛选数据。我想做的实际上更接近于Excel的“Index Match”功能,而不是简单的过滤。我研究了很多其他主题。
问题如下: 1. 当我应用我的筛选器时,数据框返回零个true值。为什么会返回零个true值,即使我对逻辑很灵活? 2. 如果我引入第五列,比如说D列,并使用random.randomint(100-1000,100)进行填充,那么我应该使用什么逻辑来有条件地找到只针对D列的最大值?也就是说,在返回多个true值的情况下,我能否强制pandas数据框只返回特定列中最高的true值?
非常感谢您的建议。提前致谢。
问题如下: 1. 当我应用我的筛选器时,数据框返回零个true值。为什么会返回零个true值,即使我对逻辑很灵活? 2. 如果我引入第五列,比如说D列,并使用random.randomint(100-1000,100)进行填充,那么我应该使用什么逻辑来有条件地找到只针对D列的最大值?也就是说,在返回多个true值的情况下,我能否强制pandas数据框只返回特定列中最高的true值?
非常感谢您的建议。提前致谢。
import pandas as pd
df = pd.DataFrame({
'Step': [1,1,1,1,1,1,2,2,2,2,2,2],
'A': [4,5,6,7,4,5,6,7,4,5,6,7],
'B': [10,20,30,40,10,20,30,40,10,20,30,40],
'C': [0,0.5,1,1.5,2,2.5,0,0.5,1,1.5,2.0,2.5]
})
columns = ['Step','A','B','C']
df=df[columns]
new_df=df[(df.Step == 1) & (df.A == 4|5|6|7) & (df.B == 10|20|30|40)]
new_df
2.
添加一些示例吗?你需要一个最大值吗? - jezrael