代码之家  ›  专栏  ›  技术社区  ›  dark horse

表-列排序更改

  •  0
  • dark horse  · 技术社区  · 6 年前

    创建时间 我想把它作为数据帧的第一列。

    df_v1 = pd.concat([pd.read_csv(f) for f in updatedfiles_1], sort=True)
    cols = df_v1.columns.tolist()
    print(cols) 
    cols.insert(0, cols.pop(cols.index('Time_Created')))
    print(cols) <-- This shows the columns as expected
    df_v1.to_csv('file.csv')
    

    我看到在保存到csv之前打印列时,列会根据需要进行修改,但当我打开保存的csv时,列排序会发生更改。

    以下是源中列的顺序:

    Name,Price,Quanity,Time_Created
    

    Time_Created,Name,Price,Quanity
    

    有谁能告诉我为什么输出文件会改变列排序。谢谢。

    2 回复  |  直到 6 年前
        1
  •  1
  •   jtweeder Todd Gardner    6 年前

    df_v1 = pd.concat([pd.read_csv(f) for f in updatedfiles_1], 
                      sort=True)
    cols = df_v1.columns.tolist()
    print(cols) 
    cols.insert(0, cols.pop(cols.index('Time_Created')))
    print(cols) <-- This shows the columns as expected
    df_v1[cols].to_csv('file.csv')  <-Here you tell it to send df_v1 in [cols] order
    

    如果最后一个 print(cols) 是您想要的订单,然后您可以在发送邮件时使用它 df_v1 到\u csv。

        2
  •  0
  •   Alex    6 年前

    尝试使用 df_v1[['Time_Created', 'Name', 'Price', 'Quanity']].to_csv(...)