我正在使用熊猫来读取选举结果的简单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.py
election.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)