如何排序和选择pandas数据

时间:2014-02-07 16:13:06

标签: python pandas

我是熊猫的新手,所以请原谅这个问题是多么基本。我有一个CSV文件,我用

阅读
df = pandas.read_csv("file.csv")

我想现在对数据执行一些基本功能。例如

  • 按列11除以第8列排序。
  • 仅选择字段6中包含特定字符串的记录。

你怎么能这样做?

一些示例数据:

931,Oxfordshire,9314125,123255,Larkmead School,Abingdon,125,124,20,SUPP,8
931,Oxfordshire,9314126,123256,John Mason School,Abingdon,164,164,25,6,16
931,Oxfordshire,9314127,123257,Fitzharrys School,Abingdon,150,149,9,0,11

删除CSV文件中的前几行注释,然后

df = pandas.read_csv("GCSEIGCSEresultsv2.csv", header=None, names=['A','B','C','D','E','F','G', 'H','I','J'])

我得到了

df.dtypes
Out[20]: 
A    object
B     int64
C     int64
D    object
E    object
F    object
G    object
H    object
I    object
J    object
dtype: object

我需要告诉大熊猫,我认为SUPP意味着NaN。

1 个答案:

答案 0 :(得分:1)

假设我将您的列命名为c1c11

c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11
931,Oxfordshire,9314125,123255,Larkmead School,Abingdon,125,124,20,SUPP,8
931,Oxfordshire,9314126,123256,John Mason School,Abingdon,164,164,25,6,16
931,Oxfordshire,9314127,123257,Fitzharrys School,Abingdon,150,149,9,0,11

排序:

df['r_c8c11']=df['c11']*1.0/df['c8'] #if your dtype for these columns are int
df.sort(columns=['r_c8c11'])

仅选择字段6中包含特定字符串的记录:

df[df['c6']=='Abingdon']