有效地将文本数据从网站请求转换为熊猫数据框

时间:2021-02-09 14:58:53

标签: pandas dataframe web-scraping

我手头有以下网站,正在尝试从中提取历史数据。 http://regsho.finra.org/CNMSshvol20180801.txt

我最初的方法如下:

import requests
import pandas as pd
import io

url ="http://regsho.finra.org/CNMSshvol20180801.txt"
response_data = requests.get(url).content
dfRaw= pd.read_csv(io.BytesIO(response_data))

输出如下,需要完全返工才能使用。即列定义错误,索引不好看等

Out[72]: 
                                   Date|Symbol|ShortVolume|ShortExemptVolume|TotalVolume|Market
20180801|A|127212|14|658064|Q                                                       N          
20180801|AA|514915|817|1549350|Q                                                    N          
20180801|AABA|975797|370|3608955|Q                                                  N          
20180801|AAC|43229|0|93929|Q                                                        N          
20180801|AADR|3213|0|9620|Q                                                         N          
                                                                              ...          
20180801|ZUMZ|85580|0|150959|Q                                                      N          
20180801|ZUO|152012|100|293146|Q                                                    N          
20180801|ZYME|6706|0|28133|Q                                                        N          
20180801|ZYNE|85036|0|202011|Q                                                      N          
7676                                                                              NaN     

因为我在 finra 上迭代了多年,所以我不想在 pd.read_csv() 之后处理 Pandas,并且在提取数据和获得干净的数据帧方面尽可能高效。

如何在不更改此代码后的数据帧的情况下实现此目的?我的方法合适吗?我应该查看不同的库,比如 beautifulsoup 还是其他网页抓取的库?

1 个答案:

答案 0 :(得分:1)

这就够了:

import pandas as pd

df= pd.read_csv('http://regsho.finra.org/CNMSshvol20180801.txt', sep='|')
相关问题