df = pd.read_csv("file.csv")
sorted_df = df.sort_values(by = 'index', ascending = False)
sorted_df.to_csv("output.csv", index = False)
Index是用于对csv文件进行排序的列的名称,但是,我收到一个关键错误,指出无法找到索引列
排序前:
index;name;result
1;John;Ok
2;Jacob;Ok
6;Philip;Nok
7;Joe;Nok
4;Stanley;Ok
5;Alfred;Ok
3;Jill;Nok
排序后的预期结果:
index;name;result
1;John;Ok
2;Jacob;Ok
3;Jill;Nok
4;Stanley;Ok
5;Alfred;Ok
6;Philip;Nok
7;Joe;Nok
发布于 2021-02-05 00:02:34
在Pandas中,Index是数据帧索引的关键字。当按索引排序时,pandas可能不确定是使用dataframe的实际索引还是使用名为index的列。在导出dataframe时,您告诉pandas不要导出dataframe索引。但它不会影响列索引。这可能会给你带来麻烦。
让我们将您的数据放在用分号分隔的csv文件中
index;name;result
1;John;Ok
2;Jacob;Ok
6;Philip;Nok
7;Joe;Nok
4;Stanley;Ok
5;Alfred;Ok
为了向您展示不同之处,我可以直接读取3个数据列
df = pd.read_csv("/Users/aortner/Desktop/todelete.csv",delimiter=';')
print(df)
index name result
0 1 John Ok
1 2 Jacob Ok
2 6 Philip Nok
3 7 Joe Nok
4 4 Stanley Ok
5 5 Alfred Ok
或者,通过指定索引index_col=
,我可以使用csv文件的第一列作为pandas数据帧的索引
import pandas as pd
df = pd.read_csv("/Users/aortner/Desktop/todelete.csv",delimiter=';',index_col="index")
print(df)
name result
index
1 John Ok
2 Jacob Ok
6 Philip Nok
7 Joe Nok
4 Stanley Ok
5 Alfred Ok
这可以按索引排序
sorted_df = df.sort_values(by = 'index', ascending = False)
print(sorted_df)
name result
index
7 Joe Nok
6 Philip Nok
5 Alfred Ok
4 Stanley Ok
2 Jacob Ok
1 John Ok
并且导出时不带索引列
sorted_df.to_csv("output.csv", index = False)
!cat output.csv
name,result
Joe,Nok
Philip,Nok
Alfred,Ok
Stanley,Ok
Jacob,Ok
John,Ok
或使用索引列
sorted_df.to_csv("output.csv", index = True)
!cat output.csv
index,name,result
7,Joe,Nok
6,Philip,Nok
5,Alfred,Ok
4,Stanley,Ok
2,Jacob,Ok
1,John,Ok
希望这能解决你的问题。
发布于 2021-02-04 23:49:42
我已经想通了。我应该添加分隔符,而且升序必须为True
df = pd.read_csv("file.csv", delimiter = ";")
sorted_df = df.sort_values(by = 'index', ascending = True)
sorted_df.to_csv("output.csv", index = False)
https://stackoverflow.com/questions/66048621
复制相似问题