gpt4 book ai didi

python - 使用 Pandas 获取每行和列标题的最大值

转载 作者:行者123 更新时间:2023-12-03 19:04:23 24 4
gpt4 key购买 nike

我有一个数据框,我希望获取每一行的最大值和最大值所在列的列标题,并返回一个新的数据框。实际上,我的数据框有 50 多列和 30,000 多行:
df1:

ID   Tis   RNA   DNA   Prot   Node   Exv     
AB 1.4 2.3 0.0 0.3 2.4 4.4
NJ 2.2 3.4 2.1 0.0 0.0 0.2
KL 0.0 0.0 0.0 0.0 0.0 0.0
JC 5.2 4.4 2.1 5.4 3.4 2.3
所以理想的输出是这样的:
df2:
ID  
AB Exv 4.4
NJ RNA 3.4
KL N/A N/A
JC Prot 5.4
我尝试了以下方法但没有成功:
df2 = df1.max(axis=1)
result.index = df1.idxmax(axis=1)
也试过:
df2=pd.Series(df1.columns[np.argmax(df1.values,axis=1)])
final=pd.DataFrame(df1.lookup(s.index,s),s)
我看过其他帖子,但似乎仍然无法解决这个问题。
任何帮助都会很棒

最佳答案

如果 ID 使用是索引 DataFrame.agg 用替换 0按缺失值排列的行:

df = df1.agg(['idxmax','max'], axis=1).mask(lambda x: x['max'].eq(0))
print (df)
idxmax max
AB Exv 4.4
NJ RNA 3.4
KL NaN NaN
JC Prot 5.4
如果 ID 使用是列:
df = df1.set_index('ID').agg(['idxmax','max'], axis=1).mask(lambda x: x['max'].eq(0))

关于python - 使用 Pandas 获取每行和列标题的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64045319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com