如何查看数据框两列之间的最大值以及一列中有多少值大于另一列?
How to see the highest value between two columns of a dataframe and how many values in one column are greater than the other?
我需要比较数据框的两列 (a, b) 以查看 "a" 中有多少值大于 Pandas 中的“b”。
我试过这种方式,但我不知道它是否是最好的选择:
def result(y,z):
if(y > z):
return True
df_filtered.apply(lambda y: result(y['a'],y['b']), axis = 1)
这向我显示了真假结果列表,但我需要知道每个结果的数量。
你需要:
(df['a'] > df['b']).sum()
考虑以下示例:
df = pd.DataFrame({
'a':[10,20,30,40],
'b':[1,200,300,4]
})
输出:
a b
0 10 1
1 20 200
2 30 300
3 40 4
然后
(df['a'] > df['b']).sum()
输出
2
您可以通过 value_counts
查看
df['a'].gt(df['b']).value_counts()
你做对了,只需添加 value_counts() 这样:
df_filtered.apply(lambda y: result(y['a'],y['b']), axis = 1).value_counts()
更好的是,如果您的函数 result 很简单,您可以这样写:
df.apply(lambda x: x['a']>x['b'], axis=1).value_counts()
我需要比较数据框的两列 (a, b) 以查看 "a" 中有多少值大于 Pandas 中的“b”。
我试过这种方式,但我不知道它是否是最好的选择:
def result(y,z):
if(y > z):
return True
df_filtered.apply(lambda y: result(y['a'],y['b']), axis = 1)
这向我显示了真假结果列表,但我需要知道每个结果的数量。
你需要:
(df['a'] > df['b']).sum()
考虑以下示例:
df = pd.DataFrame({
'a':[10,20,30,40],
'b':[1,200,300,4]
})
输出:
a b
0 10 1
1 20 200
2 30 300
3 40 4
然后
(df['a'] > df['b']).sum()
输出
2
您可以通过 value_counts
df['a'].gt(df['b']).value_counts()
你做对了,只需添加 value_counts() 这样:
df_filtered.apply(lambda y: result(y['a'],y['b']), axis = 1).value_counts()
更好的是,如果您的函数 result 很简单,您可以这样写:
df.apply(lambda x: x['a']>x['b'], axis=1).value_counts()