【问题标题】:Looping through and Sorting Rows in pandas without using inbuilt function在不使用内置函数的情况下循环遍历和排序 pandas 中的行
【发布时间】:2021-05-05 03:07:58
【问题描述】:
如何遍历行并确定 John 和 Aaron 在哪个学期的成绩最高?
注意:不使用内置的 pandas 函数
下面是我的数据框:
Index Sem1 Sem2
John 98 99
Aaron 91 100
Brian 100 93
我能达到的最接近的方法是循环遍历数据框并以以下方式访问索引,但我无法将这些值附加到列表中。
`蟒蛇
for i in dfff:
names = []
names.append(dfff[i].John)
`
【问题讨论】:
标签:
python
python-3.x
pandas
dataframe
sorting
【解决方案1】:
您应该在循环之外定义列表变量;否则,你会在每次迭代中失去它的价值。
names = []
for i in dfff:
names.append(dfff[i].John)
【解决方案2】:
IIUC,您可以像这样确定每个学生成绩最高的学期:
df.set_index('Index').idxmax(axis=1)
输出:
Index
John Sem2
Aaron Sem2
Brian Sem1
dtype: object
hig = {}
df = df.set_index('Index')
for idx, row in df.iterrows():
if row['Sem1'] > row['Sem2']:
hig[idx] = 'Sem1'
elif row['Sem2'] > row['Sem1']:
hig[idx] = 'Sem2'
else:
hig[idx] = 'Same'
print(hig)