【问题标题】:How to sort a csv file without headers using python?如何使用python对没有标题的csv文件进行排序?
【发布时间】:2019-01-19 05:47:29
【问题描述】:

如何使用 python pandas 对没有标题的 csv 文件进行排序? 注意:csv 文件没有标题。

我的文件:

1,a123,adam,student
2,b345,becky,student
3,c678,charles,teacher
1,d987,dickson,teacher
2,e654,evanston,teacher

预期输出:

1,a123,adam,student
1,d987,dickson,teacher
2,b345,becky,student
2,e654,evanston,teacher
3,c678,charles,teacher

【问题讨论】:

  • 你认为按 csv 的第一个值排序吗?

标签: python python-2.7 pandas pandas-groupby


【解决方案1】:

使用read_csv 和参数names 作为Dataframe 的新列名称,然后使用DataFrame.sort_values

import pandas as pd

temp=u"""1,a123,adam,student

2,b345,becky,student

3,c678,charles,teacher

1,d987,dickson,teacher

2,e654,evanston,teacher"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), names=['a','b','c','d'])

print (df)
   a     b         c        d
0  1  a123      adam  student
1  2  b345     becky  student
2  3  c678   charles  teacher
3  1  d987   dickson  teacher
4  2  e654  evanston  teacher

df = df.sort_values('a')
print (df)
   a     b         c        d
0  1  a123      adam  student
3  1  d987   dickson  teacher
1  2  b345     becky  student
4  2  e654  evanston  teacher
2  3  c678   charles  teacher

或者使用 header=None 作为默认列名 - RangeIndex:

df = pd.read_csv(pd.compat.StringIO(temp), header=None)

print (df)
   0     1         2        3
0  1  a123      adam  student
1  2  b345     becky  student
2  3  c678   charles  teacher
3  1  d987   dickson  teacher
4  2  e654  evanston  teacher

df = df.sort_values(0)
print (df)
   0     1         2        3
0  1  a123      adam  student
3  1  d987   dickson  teacher
1  2  b345     becky  student
4  2  e654  evanston  teacher
2  3  c678   charles  teacher

【讨论】:

  • 我认为这个问题需要做一些工作。标题是groupby(),而预期输出是sort
  • @jezrael 我在那个 csv 文件中有数百万行,我真的可以像你一样将它分配给临时变量吗?
  • @Aakib - 不,你错过了我的评论#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv' ;)
  • @Aakib - 所以需要df = pd.read_csv('filename.csv', names=['a','b','c','d'])
  • 问题解决了。谢谢。但是如果我也想摆脱索引呢?
猜你喜欢
  • 1970-01-01
  • 2017-12-28
  • 2014-10-26
  • 2019-04-06
  • 2018-08-01
  • 1970-01-01
  • 2014-02-07
  • 2017-06-23
  • 1970-01-01
相关资源
最近更新 更多