【问题标题】:Extracting data/string from Pandas DF column从 Pandas DF 列中提取数据/字符串
【发布时间】:2017-12-27 02:51:00
【问题描述】:

我正在尝试使用 Python pandas 从 poloniex API 中提取货币对。

我相信返回的数据只是一个列名:

Columns: [{"BTC_BCN":{"BTC":"479.74697466", "BCN":"1087153595.32266165"}, "BTC_BELA":{"BTC":"32.92293515", "BELA":"1807337.13247948"}, "BTC_BLK":{"BTC":"25.70374054", "BLK":"606717.86348734"}, "BTC_BTCD":{"BTC":"24.32220571", "BTCD":"1264.02352237"}, "BTC_BTM":{"BTC":"11.57816905", "BTM":"80673.47934437"}, "BTC_BTS":{"BTC":"1102.88787610", "BTS":"30426626.64558044"}

我想要的结果:BTC_BCN, BTC_BELA, BTC_BLK, 等等...

但不确定是否有一种简单的方法可以在不进行字符串解析的情况下得到它,因为它们似乎都只是列名。

代码:

from bs4 import BeautifulSoup
import csv
import urllib2
import pandas as pd
try:
  from StringIO import StringIO
except:
   from io import StringIO



sock= urllib2.urlopen('https://poloniex.com/public?command=return24hVolume')
link=sock.read()
soup = BeautifulSoup(link,'lxml')
csv_data = StringIO(soup.text)

df=pd.read_csv(csv_data,delimiter=' *, *',engine='python')
df2=df.iloc[1:2,0:20] 

【问题讨论】:

  • 获取列名,您可以这样做list(df.columns)
  • list(df.keys()) 似乎有效。

标签: python pandas beautifulsoup


【解决方案1】:

这里根本不需要BeautifulSoup网页内容是 JSON - 直接用.read_json() 解析:

df = pd.read_json('https://poloniex.com/public?command=return24hVolume')

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 2021-12-15
    • 2016-10-07
    • 2021-12-05
    • 2019-04-22
    • 2021-07-10
    • 2019-12-15
    • 2020-04-04
    相关资源
    最近更新 更多