【问题标题】:Reorder(Sort) rows in CSV using python based on other columns使用基于其他列的python重新排序(排序)CSV中的行
【发布时间】:2018-02-15 13:39:58
【问题描述】:

我正在尝试重新排序 csv 中的行,我希望在 csv 中将“全部”作为最后一行。我曾尝试使用 sort_index 和 sort_Values 但我无法实现我想要的。这是我的代码:

import pandas as pd
import csv

df1=pd.read_csv("C:\\testfolder\\testdemofinal1.csv",sep=',',na_filter=False)

df=pd.DataFrame(df1)

a=df.pivot_table(index=['Parameter1_Calculation','Parameter2_Calculation'],columns='Measure Names', values='Measure Values',aggfunc='first',dropna=True,margins_name='All')

#a=a.sort_values(by='Total Earn',ascending=0)

这确实对行进行了排序,但没有给我正确的结果。


#a=a.sort_index(by=['Parameter1_Calculation','Parameter2_Calculation'],ascending=[True,False])

这给了我错误。

b=a.to_csv("C:\\newfile1.csv",sep=',')

我在下面附上了示例 csv:

提前致谢

我在下面有一个文本数据示例:

Parameter1   Parameter2 CPS  CallE  Calls ClickEarn      Clicks  
ABC - Health 8/23/2017  0.78    0    0    31.5          15  
Ad Network   8/23/2017  0.01    0    0     1.3           1  
All             All     0.27    0    0    17,502,274    3,493,532
Quotes       8/23/2017  0       0    0      0            0  

【问题讨论】:

    标签: python pandas csv sorting


    【解决方案1】:

    快速但愚蠢的方法是删除该行并稍后追加。

    data = df
    c = df[df['Parameter1_Calculation']=='ALL']
    data.drop(c.index).append(c)
    

    但是当你有不止一行时,这可能会产生意想不到的结果

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 2013-06-26
      • 2016-10-26
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多