【问题标题】:python DataFrame comparison using pandas [closed]python DataFrame比较使用熊猫[关闭]
【发布时间】:2020-12-23 22:57:18
【问题描述】:

我有 5 个数据框。它们具有相同的列,但具有不同的值。 我想打印第 3 列 5 中的最大值。我该怎么办?

【问题讨论】:

  • 我投票结束这个问题,因为用户没有尝试解决任何问题。

标签: python pandas dataframe compare


【解决方案1】:

df1, df2, df3, df4, df5 可以是五个数据帧。你想要第三列的最大值。首先列出每个数据帧中第三列的最大值,然后找到列表的最大值。

data = [ df1[[3]].max(), df2[[3]].max(), df3[[3]].max(), df4[[3]].max(), df5[[3]].max() ]
print(max(data))

或使用循环

dfList = [ df1, df2, df3, df4, df5 ]
maxList = []
for df in dfList:
    maxList.append(df[[3]].max())
print(max(maxList))

【讨论】:

  • 谢谢,但代码返回错误“f”{type(self).__name__} 的真值不明确。 " ValueError: Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。"
  • 您能否举一个 5 个数据帧的示例,以便我了解发生了什么?
  • 我从 sql 中提取数据以获取数据帧。数据帧是这样的,我想打印 5 个数据帧中 id 为 2 的最高 deger 值,例如
  • 看起来应该没有问题。但是有...df1.iloc[ : , 2 ] 也将获得第三列,因此您可以在循环中尝试maxList.append(df.iloc[:,2].max())。另外,你可以试试。 max(numeric_only=True) 以确保 max() 函数中没有非数字项。
【解决方案2】:

有点贵,但单线可能是:

pd.concat([df1.col3,df2.col3,df3.col3,df4.col3,df5.col3]).max()

输入:

df1 = pd.DataFrame({'col1': [1],'col2': [2],'col3': [5]})
df2 = pd.DataFrame({'col1': [1],'col2': [2],'col3': [10]})
df3 = pd.DataFrame({'col1': [1],'col2': [2],'col3': [12]})
df4 = pd.DataFrame({'col1': [1],'col2': [2],'col3': [15]})
df5 = pd.DataFrame({'col1': [1,10],'col2': [2,12],'col3': [19,13]})

代码输出:

19

【讨论】:

    猜你喜欢
    • 2020-12-20
    • 2014-03-31
    • 2017-12-23
    • 2019-09-17
    • 1970-01-01
    • 2021-12-30
    • 2020-08-31
    • 2015-08-20
    相关资源
    最近更新 更多