簡體   English   中英

Python pandas to_csv 問題

[英]Python pandas to_csv issue

我正在運行 python 程序,它將 csv 數據作為字符串,需要對其進行排序並返回 output 作為字符串

輸入=“賭注,查理,丹尼爾,艾達,艾瑞\n17945,10091,10088,3907,10132\n2,12,13,48,11”

所需的 output = "Ada,Bet,Charle,Daniell,Eri\n3907,17945,10091,10088,10132\n48,2,12,13,11"

import pandas as pd
from io import StringIO

def sort_csv(input):
  str_data = StringIO(input)
  output_df = pd.read_csv(str_data, sep=",")
  output_df = output_df.sort_index(axis=1)
  output_df.to_csv(path_or_buf='temp.csv', index=False)
  data = open('temp.csv').read()
  return data

我面臨以下錯誤 TypeError: slice indices must be integers or None or have an index method

pandas package 升級,使用 python 3.4。 有什么幫助嗎?

這是一個避免使用pandas的實現,並允許按不同列排序。 將輸入字符串分解為列表列表后,將對指定的排序列(即要用於從列表列表中排序的列表)進行排序,同時記下原始索引,然后將其作為排序鍵傳遞到其他列表。 之后,您只需將字符串重新連接在一起:

x =  "Bet,Charle,Daniell,Ada,Eri\n17945,10091,10088,3907,10132\n2,12,13,48,11"

col_to_sort = 0

sublists = [i.split(',') for i in x.split()]

sorted_list = [[l[i] for i in sorted(range(len(sublists[col_to_sort])), key=lambda k: sublists[col_to_sort][k])] for l in sublists]

print(repr('\n'.join(','.join(k) for k in sorted_list)))

產量:

'Ada,Bet,Charle,Daniell,Eri\n3907,17945,10091,10088,10132\n48,2,12,13,11'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM