【发布时间】:2020-12-23 22:57:18
【问题描述】:
我有 5 个数据框。它们具有相同的列,但具有不同的值。 我想打印第 3 列 5 中的最大值。我该怎么办?
【问题讨论】:
-
我投票结束这个问题,因为用户没有尝试解决任何问题。
标签: python pandas dataframe compare
我有 5 个数据框。它们具有相同的列,但具有不同的值。 我想打印第 3 列 5 中的最大值。我该怎么办?
【问题讨论】:
标签: python pandas dataframe compare
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))
【讨论】:
df1.iloc[ : , 2 ] 也将获得第三列,因此您可以在循环中尝试maxList.append(df.iloc[:,2].max())。另外,你可以试试。 max(numeric_only=True) 以确保 max() 函数中没有非数字项。
有点贵,但单线可能是:
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
【讨论】: