我一直在进行文本抓取,只是使用循环将文本写入CSV文件。例如(跳过大量代码--这只是为了说明):
for i in range(0,numresults):
a2 = soup.find_all('td')[0].string
a3 = soup.find_all('td')[1].string
file.write(str(i) + '|' + a2 + '|' + a3 + '\n')然后我可以像R一样打开这个CSV文件。
但是,假设我想在python中创建一个矩阵。首先,当使用包含大量文本的数据时,最好使用熊猫或NumPy吗?
第二,如何修改代码,使其不是写入文件,而是同时创建熊猫和NumPy数组?
让我们说,文本最终是:
a11 = 1; a12 = 'a'; a13 = 'Text1'
a21 = 2; a22 = 'B'; a23 = 'Text2'
a31 = 3; a32 = 'c'; a33 = 'Text3'
a41 = 4; a42 = 'D'; a44 = 'Text4'
import numpy as np
import pandas最后,我将如何将生成的熊猫和NumPy矩阵写入CSV文件?
发布于 2014-05-31 18:08:47
似乎您正在使用BeautifulSoup从HTML中获取表。我已经成功地使用Pandas从网页中提取表格。使用来自熊猫文档的示例(以下是链接):
In [1]: import pandas as pd
In [2]: tables = pd.read_html('http://www.fdic.gov/bank/individual/failed/banklist.html')在这种情况下,tables只有一个表。您可以执行print tables[0]查看或tables[0].to_csv(local_csv_output)保存为CSV文件。pd.read_html可以同时读取两个网址(http.)和本地HTML文件。
如果您有多个表,只需通过打印来手动找出您需要的表。
试试看让我们知道。
如果您已经分配了变量a11,a11,... (这似乎很奇怪--它们应该在list中),那么您可以创建熊猫DataFrame:
In [38]: df = pd.DataFrame ([[a11,a12,a13],
[a21,a22,a23],
[a31,a32,a33],
[a41,a42,a44]],
columns=['Col1','Col2','Col3'])
In [39]: df
Out[39]:
Col1 Col2 Col3
0 1 a Text1
1 2 B Text2
2 3 c Text3
3 4 D Text4df.to_csv('output_csv_file.csv')会把它保存到csv。
https://stackoverflow.com/questions/23971885
复制相似问题