我是熊貓的新手,我正試圖將它應用到我已經寫過的腳本。 我有一個csv文件,我從中提取數據,並使用我的數據框的列'候選','最終曲目'和'狀態'。用熊貓過濾數據
我的問題是,我想過濾數據,也許使用Wes Mckinney的10分鐘教程('http://nbviewer.ipython.org/urls/gist.github.com/wesm/4757075/raw/a72d3450ad4924d0e74fb57c9f62d1d895ea4574/PandasTour.ipynb')中顯示的方法。在In [80]:
部分,他使用aapl_bars.close_price['2009-10-15']
。
我想用類似的方法來選擇所有具有*
作爲狀態的數據。如果該行中沒有*,則其他列的數據也會被刪除。
此刻我代碼:
def establish_current_tacks(filename):
df=pd.read_csv(filename)
cols=[df.iloc[:,0], df.iloc[:,10], df.iloc[:,11]]
current_tracks=pd.concat(cols, axis=1)
return current_tracks
我數據幀:
>>> current_tracks
<class 'pandas.core.frame.DataFrame'>
Int64Index: 707 entries, 0 to 706
Data columns (total 3 columns):
candidate 695 non-null values
final track 670 non-null values
status 670 non-null values
dtypes: float64(1), object(2)
我想用一些諸如current_tracks.status['*']
,但這不起作用
如果這是顯而易見的道歉,爲了讓我的頭腦得到解決而掙扎一點。
當你在讀取csv後過濾你的cols時,像''df = read_csv(filename,usecols = [0,10,11])'這樣''read_csv'的調用過濾效率會更高,或者你可以通過列名稱列表'df = read_csv(filename,usecols = ['candidate','final track','status'])'它將會加載得更快更快 – EdChum
Cheers Ed。我有兩個問題,1.你解釋的兩種方法不會產生相同的結果?(第一個給出我想要的結果.2)。你將如何索引這些列與列名稱? –
我認爲列名與輸出結果是一樣的,可能它們不是,這就可以解釋1.第二個代碼片段是正確的語法和形式,但由於某種原因,不會產生相同的結果,您會需要理解爲什麼,你可以閱讀更多關於參數[這裏](http://pandas.pydata.org/pandas-docs/stable/io.html#csv-text-files) – EdChum