[英]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.