2014-02-07 45 views
0

我是熊貓的全新品牌,請原諒這個問題的基本原理。我有一個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。

+0

你到目前爲止嘗試過什麼?您還需要顯示您的csv文件的外觀,並顯示您的預期輸出。 – TomAugspurger

+0

我鼓勵你閱讀[documentation](http://pandas.pydata.org/pandas-docs/stable/10min.html),並回來至少試圖解決這個問題。 – arkottke

+1

@Anush我認爲你需要先嚐試一些事情,然後回來一個具體的問題,而不是要求解決方案,這是非常基本的 – EdChum

回答

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[df['c6']=='Abingdon'] 

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

包含在現場6特定字符串只選擇那些記錄

+1

謝謝。使用df = pandas.read_csv(「file.csv」,header = None,names = ['c1','c2','c3','c4','c5','c6','c7','c8 ','c9','c10','c11'],na_values ='SUPP'),這很好地工作。 – Anush

+0

當然,我只是想知道你可能已經有了真正的數據名字,比如「Zipcode」,「County」,「School」,「Town」等等。(它可能是無論如何都要定義標題是一個好主意,它可以提高人類的可讀性)。乾杯! –