2017-11-25 16 views
1

URLに.txtを持つこのウェブサイトから日付を取得しようとしています。私はPython初心者で、先週始めたばかりです。ここにリンクがあります:Pandas/BeautifulSoup - .txtでURLからデータを取得する

http://regsho.finra.org/FNSQshvol20171121.txt

私は、私は右のそれをやったと思うデータを取得するためにパンダ、requests.getを使用してみました、とBeautifulSoup。次の問題は...私はちょうど得たデータでインデックスを作成して遊んでいくことができます。ここに私のコード

page = requests.get('http://regsho.finra.org/FNSQshvol20171121.txt') 
soup = BeautifulSoup(page.text, 'html.parser') 
print(soup.prettify()) 

OR私は、インデックスIは、ウェブサイトから得たか、データがちょうど特定の列を選択するにはどうすればよい

import pandas as pd 
list = pd.read_table('http://regsho.finra.org/FNSQshvol20171121.txt') 
list.head() 
list.columns 

は?

list['Date', 'Symbol'] 
list[5:12] 

などとなる。

助けてください!よりシンプルな方法が必要なような気がしますし、難しいルートに行く必要もありません。

本当にありがとうございます!

答えて

0

あなたのデータフレームを正しく読み取ることはできません。 read_tableを使用している場合は、sep='|'を使用して、データを別々の列に正しく分割します。

df = pd.read_table('http://regsho.finra.org/FNSQshvol20171121.txt', sep='|') 

df.head() 

     Date Symbol ShortVolume ShortExemptVolume TotalVolume Market 
0 20171121  A  625382.0    3586.0 1467570.0  Q 
1 20171121  AA  873300.0    3417.0 2158580.0  Q 
2 20171121 AAAP  4185.0    135.0  412030.0  Q 
3 20171121 AABA  452857.0    300.0 4045918.0  Q 
4 20171121 AAC  21235.0    1501.0  45747.0  Q 

df[['X', 'Y', ...]]はあなたの選択した列のデータフレームのスライスを与える:

df[['Date', 'Symbol']].head() 

     Date Symbol 
0 20171121  A 
1 20171121  AA 
2 20171121 AAAP 
3 20171121 AABA 
4 20171121 AAC 

行と列のsubsliceを選択するには、ちょうどloc使用:あなたはそれを割り当てたい場合は

df.loc[5:12, ['Date', 'Symbol']] 

     Date Symbol 
5 20171121 AADR 
6 20171121 AAL 
7 20171121 AAMC 
8 20171121 AAME 
9 20171121 AAN 
10 20171121 AAOI 
11 20171121 AAON 
12 20171121 AAP 

dfに変更してください。これらの操作は適切ではありません。

df = df.loc[5:12, ['Date', 'Symbol']] 

オリジナルのデータフレームを失うことに注意してください。スライスを別の変数に割り当てる場合は、スライスを割り当てることもできますが、チェーン割り当てを防ぐためにコピーを作成するようにしてください。

df2 = df.loc[5:12, ['Date', 'Symbol']].copy() 

また読み出し -

関連する問題