Python将数据添加到空的pd.Dataframe中

Python将数据添加到空的pd.Dataframe中,python,pandas,dataframe,Python,Pandas,Dataframe,我对python很陌生,我正在尝试从网站获取数据,并将网页的一部分添加到dataframe中 这是我已经得到的代码,但在向数据帧添加数据时出现错误 我得到的代码: url = 'https://oldschool.runescape.wiki/w/Module:Exchange/Anglerfish/Data' r = requests.get(url) soup = BeautifulSoup(r.content, 'html.parser') price_data = soup.find

我对python很陌生,我正在尝试从网站获取数据,并将网页的一部分添加到dataframe中

这是我已经得到的代码,但在向数据帧添加数据时出现错误

我得到的代码:

url = 'https://oldschool.runescape.wiki/w/Module:Exchange/Anglerfish/Data'
r = requests.get(url)

soup = BeautifulSoup(r.content, 'html.parser')

price_data = soup.find_all('span', class_='s1')
df = pd.DataFrame()

for data in price_data:
  a = pd.DataFrame(data.text.split(":")[0],data.text.split(":")[1])
  df.append(a)

print(df)
ValueError                                Traceback (most recent call last)
<ipython-input-33-963d51917cf2> in <module>()
 10 
 11 for data in price_data:
---> 12   a = pd.DataFrame(data.text.split(":")[0],data.text.split(":")[1])
 13   df.append(a)
 14 

/usr/local/lib/python3.6/dist-packages/pandas/core/frame.py in __init__(self, data, index, columns, dtype, copy)
507                 )
508             else:
--> 509                 raise ValueError("DataFrame constructor not properly called!")
510 
511         NDFrame.__init__(self, mgr, fastpath=True)

ValueError: DataFrame constructor not properly called!
我收到的错误:

url = 'https://oldschool.runescape.wiki/w/Module:Exchange/Anglerfish/Data'
r = requests.get(url)

soup = BeautifulSoup(r.content, 'html.parser')

price_data = soup.find_all('span', class_='s1')
df = pd.DataFrame()

for data in price_data:
  a = pd.DataFrame(data.text.split(":")[0],data.text.split(":")[1])
  df.append(a)

print(df)
ValueError                                Traceback (most recent call last)
<ipython-input-33-963d51917cf2> in <module>()
 10 
 11 for data in price_data:
---> 12   a = pd.DataFrame(data.text.split(":")[0],data.text.split(":")[1])
 13   df.append(a)
 14 

/usr/local/lib/python3.6/dist-packages/pandas/core/frame.py in __init__(self, data, index, columns, dtype, copy)
507                 )
508             else:
--> 509                 raise ValueError("DataFrame constructor not properly called!")
510 
511         NDFrame.__init__(self, mgr, fastpath=True)

ValueError: DataFrame constructor not properly called!
ValueError回溯(最近一次调用)
在()
10
11对于价格数据中的数据:
--->12a=pd.DataFrame(data.text.split(“:”[0],data.text.split(“:”[1]))
13 df.追加(a)
14
/usr/local/lib/python3.6/dist-packages/pandas/core/frame.py in_u______________(self、数据、索引、列、数据类型、副本)
507                 )
508其他:
-->509 raise VALUERROR(“未正确调用数据帧构造函数!”)
510
511 NDFrame.\uuuuu init\uuuuu(self,mgr,fastpath=True)
ValueError:未正确调用数据帧构造函数!
通过

pd.DataFrame([[data.text.split(":")[0],data.text.split(":")[1]]])

data.text.split(“:”[0]、data.text.split(“:”[1]
中获得的数据结构似乎与函数
pd.DataFrame()
的预期不符。首先看一看函数的结构,以完全理解所期望的内容以及如何正确地将数据传递给它。您可以传递带有列名和值的字典(数组长度必须相等,或者应该指定索引),或者按照建议的列表/数组,例如:

a = pd.DataFrame({'Column_1':data.text.split(":")[0],'Column_2':data.text.split(":")[1]})

由于您处理的是
html
数据,因此您应该尝试使用
pandas.read_html()
的不同方法,该方法可以阅读更多信息我做了更多的研究,最好的方法是:

#get data from marketwatch

url = 'https://oldschool.runescape.wiki/w/Module:Exchange/Anglerfish/Data'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
price_data = soup.find_all('span', class_='s1')
df = pd.DataFrame(columns=['timestamp', 'price'])

for data in price_data:
  df = df.append({'timestamp': data.text.split(":")[0], 'price': data.text.split(":")[1]}, ignore_index=True)

print(df)

嘿,我是rs的超级粉丝!