Python Pandas/BeautifulSoup-使用.txt从URL获取数据
我正在尝试从这个URL中包含.txt的网站获取日期。我是一个python新手,上周刚开始学习。以下是链接: 我尝试使用pandas、requests.get和BeautifulSoup来获取数据,我认为我做得对。下一个问题是…我如何索引和处理我刚得到的数据。这是我的密码Python Pandas/BeautifulSoup-使用.txt从URL获取数据,python,pandas,beautifulsoup,Python,Pandas,Beautifulsoup,我正在尝试从这个URL中包含.txt的网站获取日期。我是一个python新手,上周刚开始学习。以下是链接: 我尝试使用pandas、requests.get和BeautifulSoup来获取数据,我认为我做得对。下一个问题是…我如何索引和处理我刚得到的数据。这是我的密码 page = requests.get('http://regsho.finra.org/FNSQshvol20171121.txt') soup = BeautifulSoup(page.text, 'html.parser
page = requests.get('http://regsho.finra.org/FNSQshvol20171121.txt')
soup = BeautifulSoup(page.text, 'html.parser')
print(soup.prettify())
或
如何索引从网站获取的数据或仅选择某些列
list['Date', 'Symbol']
list[5:12]
等等
请帮忙!我觉得应该有一个更简单的方法,我不必走艰难的路线
非常感谢您的帮助 我认为您没有正确读取数据帧。如果您使用的是
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
要选择行-列子片,只需使用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()
进一步阅读-
- 我认为您没有正确读取数据帧。如果您使用的是
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
要选择行-列子片,只需使用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()
进一步阅读-