Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas/BeautifulSoup-使用.txt从URL获取数据_Python_Pandas_Beautifulsoup - Fatal编程技术网

Python Pandas/BeautifulSoup-使用.txt从URL获取数据

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

我正在尝试从这个URL中包含.txt的网站获取日期。我是一个python新手,上周刚开始学习。以下是链接:

我尝试使用pandas、requests.get和BeautifulSoup来获取数据,我认为我做得对。下一个问题是…我如何索引和处理我刚得到的数据。这是我的密码

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()
      

      进一步阅读-