Lot*_*har 3 python dataframe pandas
我有一个数据框和一个系列,并希望将DF列与系列进行比较.
Dataframe(df)看起来像:
1 1 4 7
2 2 3 1
3 2 3 9
Run Code Online (Sandbox Code Playgroud)
系列看起来像:
1 3
2 4
3 2
Run Code Online (Sandbox Code Playgroud)
想要进行布尔比较(其中列值小于系列值):
1 T F F
2 T T T
3 F F F
Run Code Online (Sandbox Code Playgroud)
当然我可以做一个循环,但应该有更简单的方法来做到这一点?
使用lt,您可以指定轴.
df.lt(s, axis=0)
1 2 3
1 True False False
2 True True True
3 False False False
Run Code Online (Sandbox Code Playgroud)
1默认情况下,轴使用重载运算符<并不能提供这种灵活性.正如评论中提到的DYZ,axis默认为1这里是一个例外,因为它通常默认为0(在其他函数中,如apply和transform).
如果系列和数据框索引不能很好地对齐,您仍然可以通过比较s.values来解决这个问题.
df.lt(s.values, axis=0)
1 2 3
1 True False False
2 True True True
3 False False False
Run Code Online (Sandbox Code Playgroud)
(df.T<s).T
# 0 1 2
#0 True False False
#1 True True True
#2 False False False
Run Code Online (Sandbox Code Playgroud)