.txt文件到Pandas数据帧

时间:2017-11-06 18:45:11

标签: python pandas csv text web-scraping

我想提取.txt文件的列并将它们放入pandas DataFrame或csv中。我还需要从.txt文件的标题中提取一些信息,并将它们作为列添加到dataframe / csv中。

以下是文件http://meteosearch.meteo.gr/data/askyfou/2017-01.txt

的链接

Partial screenshot of the file

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

尝试类似:

import pandas as pd
import requests
import StringIO

f = StringIO.StringIO()
r = requests.get('http://meteosearch.meteo.gr/data/askyfou/2017-01.txt').content
f.write(r)

f.seek(0)
df = pd.DataFrame()

for x in f.readlines()[10:41]:
    df = df.append(pd.Series(x.split()),ignore_index=True)

df.columns = ['DAY','MEAN TEMP','HIGH1','TIME1','LOW',
              'TIME2','MAX RH','MIN RH','RAIN',
              'AVG WIND SPEED','HIGH2','TIME3','DOM DIR']

print df.head()

答案 1 :(得分:0)

感谢您的回复。

我试过这段代码

指定列宽

col_specification = [(0,4),(5,9),(11,15),(16,23),(24,28),(29,36),(37,44),(45 ,49),                    (51,55),(58,63),(64,69)]

从网址

中读取数据

data = pd.read_fwf('http://meteosearch.meteo.gr/data/askyfou/2017-01.txt',colspecs = col_specification,header = 8,skipfooter = 2,skipinitialspace = True)

它似乎有效,虽然不像你的那样自动化。 我假设你使用python 2,对吧?