繁体   English   中英

如何在使用 python 时只对 csv 文件中的第一列进行排序而不影响任何其他列

[英]How do you sort only the first column in a csv file and not affect any of the other columns while doing so using python

我正在处理一个表(csv 文件),其中包含以下数据:

roll_no,student_name,grade,email_id  
1,Aarav Gosalia,Grade 11,aarav.gosalia@flag.org.in  
2,Aarav Rawal,Grade 11,aarav.rawal@flag.org.in  
3,Abizar Chitalwala,Grade 11,abizar.chitalwala@flag.org.in  
4,Ahad Motorwala,Grade 11,ahad.motorwala@flag.org.in  
5,Armaan Adenwala,Grade 11,armaan.adenwala@flag.org.in  
6,Aryan Shah,Grade 11,aryan.shah@flag.org.in  
7,Baasit Motorwala,Grade 11,baasit.motorwala@flag.org.in  
16,Caroline Walker,Grade 11,caroline.walker@flag.org.in  
8,Darsshan Kavedia,Grade 11,darsshan.kavedia@flag.org.in  
9,Devanshi Rajgharia,Grade 11,devanshi.rajgharia@flag.org.in  
10,Dhruv Jain,Grade 11,dhruv.jain@flag.org.in  
11,Eisa Patel,Grade 11,eisa.patel@flag.org.in  
12,Esha Khimawat,Grade 11,esha.khimawat@flag.org.in  
13,Fatima Unwala,Grade 11,fatima.unwala@flag.org.in  
14,Hamza Erfan,Grade 11,hamza.erfan@flag.org.in  
15,Harsh Gosar,Grade 11,harsh.gosar@flag.org.in  

所以你可以看到所有的名字都被排序了,但卡罗琳沃克的卷号是 16。所以我想要一种方法来只对卷号进行排序,而不影响其他任何列。 我希望决赛桌看起来像这样:

roll_no,student_name,grade,email_id   
1,Aarav Gosalia,Grade 11,aarav.gosalia@flag.org.in  
2,Aarav Rawal,Grade 11,aarav.rawal@flag.org.in  
3,Abizar Chitalwala,Grade 11,abizar.chitalwala@flag.org.in  
4,Ahad Motorwala,Grade 11,ahad.motorwala@flag.org.in  
5,Armaan Adenwala,Grade 11,armaan.adenwala@flag.org.in  
6,Aryan Shah,Grade 11,aryan.shah@flag.org.in  
7,Baasit Motorwala,Grade 11,baasit.motorwala@flag.org.in  
8,Caroline Walker,Grade 11,caroline.walker@flag.org.in  
9,Darsshan Kavedia,Grade 11,darsshan.kavedia@flag.org.in  
10,Devanshi Rajgharia,Grade 11,devanshi.rajgharia@flag.org.in  
11,Dhruv Jain,Grade 11,dhruv.jain@flag.org.in  
12,Eisa Patel,Grade 11,eisa.patel@flag.org.in  
13,Esha Khimawat,Grade 11,esha.khimawat@flag.org.in  
14,Fatima Unwala,Grade 11,fatima.unwala@flag.org.in  
15,Hamza Erfan,Grade 11,hamza.erfan@flag.org.in  
16,Harsh Gosar,Grade 11,harsh.gosar@flag.org.in  

请帮助我,并记住我还是 Python 的初学者。

只需使用熊猫。 df['roll_no'] = range(1:len(df))

pandas是一种方式。

import pandas as pd

df = pd.read_csv('file.csv')
df.sort_values(by='roll_no')
df.to_csv('file.csv',index=False)

这将起作用:

df = pd.DataFrame({'id':[1,3,2,7],
                   'name': ['M', 'r', 'd', 'd']})
df['id'] =  list(df['id'].sort_values())
df

结果:

    id  name
0   1   M
1   2   r
2   3   d
3   7   d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM