当数据帧包含字符串时,是否有等效的DataFrame.idxmax?



我正在使用熊猫来读取选举结果的简单CSV文件:

constituency,anug,apnuafc,cg,ljp,pppc,...
Barima-Waini,0,3905,0,170,8022,...
Pomeroon-Supenaam,86,7343,149,120,18788,...
Essequibo Islands-West Demerara,310,23811,318,0,47855,...
...

views.pyelection.votes访问它:

results = pd.read_csv(election.votes)

对于每一行,我想为获胜方添加一个新列。我试过:

results["winner"] = results.max(axis=1)

但这会增加最高,而不是相应的列标题。所以我试过:

results["winner"] = results.idxmax(axis=1)

然后我得到错误reduction operation 'argmax' not allowed for this dtype.

由于选区的字符串,我不能使用to_numeric来使idxmax起作用。

有没有另一种有效的方法来获取列标题?

使用DataFrame.select_dtypes仅获取数字列:

import numpy as np
results["winner"] = results.select_dtypes(np.number).idxmax(axis=1)

最新更新