读取从pandas的URL读取导入的CSV文件时出错



我是一个初学者,试图进步我从教程中学到的项目。该项目包括从美国地质调查中导入CSV文件,并在地图上绘制其数据。

我在使用计算机中的文件时设法做到了。但是,我无法直接从URL获取CSV,以便数据可以自行更新。

现在,我正在使用大熊猫并获得此错误:

文件" c:/users/felipe/pycharmprojects/earthquake/earthquake.py",line 6,in 以打开(文件名)为csvfile:typeError:预期str,bytes或os.pathike对象,而不是dataframe

import pandas as pd
filename = pd.read_csv('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_hour.csv')
lats, lons = [], []
with open(filename) as f:
    reader = csv.reader(f)
    next(reader)
    for row in reader:
        lats.append(float(row[1]))
        lons.append(float(row[2]))
print('lats', lats[0:5])
print('lons', lons[0:5])

代码的这一部分是我试图检索de csv文件的地方。

我相信(再次,我是初学者),Pandas实际上给了我已经"处理过"的数据(不再是CSV),而我试图使用的工具可用于CSV文件本身(这是我试图理解错误,我敢肯定我可能错了,但是我什么也没想到)。

我尝试查看大熊猫文档,但找不到有关"数据帧"错误的信息。导入文件后,我还尝试使用" .to_csv",但它不起作用。

所以,TL; DR我如何获取此代码并导入CSV文件并使用其数据?

我也有一些额外的问题,我找不到答案:on"用open(fileName)为f:" f"做什么?

非常感谢!

我相信文件名应该是名字。

filename = 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_hour.csv'

这应该将其纳入数据框架:

import io
import requests
content = requests.get(filename).content
df = pd.read_csv(io.StringIO(content.decode('utf-8')))

或简单:

df = pd.read_csv(filename)

pd.read_csv()也接受URL并返回pandas dataframe。

演示:

In [55]: url = 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_hour.csv'
In [56]: df = pd.read_csv(url)
In [57]: df
Out[57]:
                       time   latitude  longitude   depth   mag magType  nst  gap    dmin   rms    ...                      updated  
0  2017-09-12T20:38:20.330Z -15.079900 -174.19000  144.26  4.80      mb  NaN   71  2.6100  0.85    ...     2017-09-12T20:56:45.040Z
1  2017-09-12T20:22:02.350Z  39.878502 -121.27433    6.78  2.74      md  9.0  215  0.3287  0.14    ...     2017-09-12T20:36:02.917Z
                             place        type horizontalError depthError  magError  magNst     status  locationSource magSource
0       107km NNW of Hihifo, Tonga  earthquake            8.80       5.30     0.033     285   reviewed              us        us
1  27km ENE of Magalia, California  earthquake            1.82      10.49     0.240       8  automatic              nc        nc
[2 rows x 22 columns]
In [58]: df[['latitude','longitude']]
Out[58]:
    latitude  longitude
0 -15.079900 -174.19000
1  39.878502 -121.27433

最新更新