根据一列的排序对多个Pandas Dataframe列进行排序

M

我有一个数据帧,其中有两列,“项目”和“卡路里”。我已经使用选择排序算法对“卡路里”列进行了数字排序,但是我需要更改“项目”列,以便卡路里值与正确的项目匹配。

menu=pd.read_csv("menu.csv",encoding="utf-8")   # Read in the csv file
menu_df=pd.DataFrame(menu,columns=['Item','Calories'])    # Creating a dataframe with just the information from the calories column
print(menu_df)                                  # Display un-sorted data
#print(menu_df.at[4,'Calories'])                # Practise calling on individual elements within the dataframe.

# Start of selection sort
for outerloopindex in range (len(menu_df)):   
    smallest_value_index=outerloopindex              
    for innerloopindex in range(outerloopindex+1,len(menu_df)):
        if menu_df.at[smallest_value_index,'Calories']>menu_df.at[innerloopindex,'Calories']:                                     
            smallest_value_index=innerloopindex                                                    
 
            
# Changing the order of the Calorie column.
    menu_df.at[outerloopindex,'Calories'],menu_df.at[smallest_value_index,'Calories']=menu_df.at[smallest_value_index,'Calories'],menu_df.at[outerloopindex,'Calories']     

# End of selection sort

print(menu_df) 

非常感谢您提供有关如何在排序后获取“项目”列以匹配相应“卡路里”值的帮助。

谢谢马丁

格热哥兹·斯基宾斯基

您可以替换df.at[...]df.loc[...]并引用多个列,而不是单个列。

因此,替换行:

menu_df.at[outerloopindex,'Calories'],menu_df.at[smallest_value_index,'Calories']=menu_df.at[smallest_value_index,'Calories'],menu_df.at[outerloopindex,'Calories']     

带线:

menu_df.loc[outerloopindex,['Calories','Item']],menu_df.loc[smallest_value_index,['Calories','Item']]=menu_df.loc[smallest_value_index,['Calories','Item']],menu_df.loc[outerloopindex,['Calories','Item']]     

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

插入DataFrame列并根据PySpark或Pandas中的另一列进行排序

Pandas DataFrame 对每一列进行排序

根据列值对 Pandas Dataframe 进行排序

pandas dataframe根据列总数对列进行排序

如何按一列排序,但如何根据非数字的另一列进行排序?

在DataFrame中对列进行排序

如何根据一列对查询结果进行排序?

根据最后一列Jquery进行表排序

根据一列对二维数组进行排序

根据第一列对CSV文件进行排序

仅根据一列对矩阵进行排序

根据最后一列对数据进行排序

Linux 根据第一列进行数字排序

根据列值对具有MultiIndex的pandas DataFrame进行排序

根据列表对列进行排序,然后对数据框中的另一列进行排序

Python Pandas:根据第一列的内容对CSV文件进行排序

对Pandas Dataframe列中的列表进行排序

在Pandas DataFrame中对列进行排序

通过同一列的多个值对结果进行排序

按一列的子字符串对Pandas Dataframe进行排序

最好的方法是基于一列对numpy数组进行排序,然后根据另一列进行子排序?

根据一列的相同值进行分组和排序,然后对这些组中的另一列进行排序

如何对 Dataframe 中的 2 列进行排序,一列按降序排序,另一列按对应于第一列的字母顺序排序

如何根据另一列数值对一列文本进行排序?

根据另一列的顺序对一列进行排序-Excel

按另一个数据框中的一列对pandas DataFrame进行排序-Pandas

在一列上按另一列对数据框进行排序-Pandas

MySQL根据第一列对第二列和第三列进行排序

在Pandas Dataframe中按一列排序,然后按另一列分组?