将txt格式的url下载到pandas数据帧中

时间:2017-12-07 21:38:25

标签: python pandas urllib

我无法尝试从此特定网址下载数据并将其存储在pandas数据框中。有人能帮忙吗?

url ='http://www2.conectiv.com/cpd/tps/archives/nj/2017/12/20171205NJA1.txt'

我需要将每个Segment存储为一行,并在不同的列中包含相应的数字。所以,我需要这种格式:

NJAAP, 12/5/2017, 37.63, 36.34, 35.97,..., 38.52
NJAAS, 12/5/2017, 37.63, 36.34, ...        etc

我尝试了以下方法:

import pandas as pd
from urllib.request import urlopen

df = pd.read_csv(url, skiprows=4) 

但是,我没有得到我想要的东西。我得到了这个:

Segment:NJAAP 12/05/2017 37.63 36.34 35.97 35.76 36.71 39.90 46.36 52.49 56.16 58.41 58.98 59.60 59.58 58.52 57.40 54.34 53.90 53.15 51.44 49.49 46.96 44.12 41.02 38.52
0   Segment:NJAAS 12/05/2017 ...
1   Segment:NJADC 12/05/2017 ...
2   Segment:NJAGN 12/05/2017 ...
3   Segment:NJAGT 12/05/2017 ...

有人可以帮忙吗?感谢

1 个答案:

答案 0 :(得分:2)

read_csv()有许多有用的选项

  • header=None - 并且第一行不会被视为标题。
  • sep='\s+' - 它使用空格来拆分列(而不是逗号,)。它是正则表达式。

import pandas as pd
from urllib.request import urlopen

url ='http://www2.conectiv.com/cpd/tps/archives/nj/2017/12/20171205NJA1.txt'
df = pd.read_csv(url, skiprows=4, header=None, sep='\s+')

加载数据后,您可以更改列中的值。

这会删除第一列中的Segments:

df[0] = df[0].str.replace('Segment:', '')