如何比较两个数据帧并返回结果?

格蕾莉

我有两个数据框,我想比较每个值并返回一个结果,如果'dis'中的值大于'para',则结果为1,否则为0,并计算有多少个1和0:

data_6

  dis
1  409.31
2  193.34
3  286.83
4  439.95
5  217.51
6  248.91
7  427.44

data_11
 para
0  223.46
1   92.26
2   66.86
3   52.14
4   69.55
5   94.20
6  129.96
7  734.35

我尝试concat,但它给了我错误:

data_12['result'] = np.where(data_12['dis'] > data_12['para'],'1','0')

TypeError:“ str”和“ float”的实例之间不支持“>”

我期望新的data_12和data_result表将是:

   dis         para      result
1  409.31     315.72       1
2  193.34     159.12       1
3  286.83     119.00       1
4  439.95     121.69       1
5  217.51     163.75       1
6  248.91     224.16       1
7  734.35     427.44       0

Another result table: 
1   0 
6   1
句子

尝试:

import pandas as pd
import numpy as np

df1 = pd.DataFrame({'dis':[1,1,2,3]})
df2 = pd.DataFrame({'para':[0,2,2,3]})

data_12 = pd.concat([df1, df2], axis=1)
data_12['result'] = np.where(data_12['dis']>data_12['para'], 1,0)

你会得到:

   dis  para  result
0    1     0       1
1    1     2       0
2    2     2       0
3    3     3       0

要计算0和1的出现次数:

data_result = data_12['result'].value_counts()

你会得到:

0    3
1    1

如anky_91所述,如果数据帧中的值是字符串,则首先需要将它们转换为浮点型,然后像我的代码中一样进行其余操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章