加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Pandas DataFrame合并选择更高的值

发布时间:2020-12-20 12:02:05 所属栏目:Python 来源:网络整理
导读:我有两个这样的DataFrame: 1 2 3 0 61.579 0.000000 47.2798611 0.000 0.000000 0.0000002 62.700 9.180000 48.4798613 56.100 40.180000 71.6798614 73.100 50.930000 71.6798615 88.300 37.930000 36.479861 我需要合并它们每次选择更高的值.所有值都是浮
我有两个这样的DataFrame:

1          2          3 
0   61.579   0.000000  47.279861
1    0.000   0.000000   0.000000
2   62.700   9.180000  48.479861
3   56.100  40.180000  71.679861
4   73.100  50.930000  71.679861
5   88.300  37.930000  36.479861

我需要合并它们每次选择更高的值.所有值都是浮点数.
有任何想法吗?我必须循环DataFrames?

解决方法

首先需要 concat,然后需要 groupby和最大聚合:

df1 = pd.DataFrame({0:[4,5,4],1:[7,8,9]})

print (df1)
   0  1
0  4  7
1  5  8
2  4  9


df2 = pd.DataFrame({0:[8,6],1:[9,4,4]})

print (df2)
   0  1
0  8  9
1  5  4
2  6  4

df = pd.concat([df1,df2]).groupby(level=0).max()
print (df)
   0  1
0  8  9
1  5  8
2  6  9

如果需要更快的解决方案使用numpy.where

a = df1.values
b = df2.values
df = pd.DataFrame(np.where(a > b,a,b),index=df1.index,columns=df1.columns)
print (df)
   0  1
0  8  9
1  5  8
2  6  9

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读