【问题标题】:How to fill in missing column value?如何填写缺失的列值?
【发布时间】:2021-12-26 06:26:29
【问题描述】:
# Import libraries
from bs4 import BeautifulSoup
import requests
import pandas as pd
import time
import ast

start_time = time.time()
s = requests.Session()

#Get URL and extract content
page=1
traits = []
accessories, backgrounds, shoes = [], [], []

while page != 100:

    params = {
        ('arg', f"Qmer3VzaeFhb7c5uiwuHJbRuVCaUu72DcnSoUKb1EvnB2x/{page}"),
    }

    content = s.get('https://ipfs.infura.io:5001/api/v0/cat', params=params, auth=('', ''))
    soup = BeautifulSoup(content.text, 'html.parser')
    page = page + 1
    
    traits = ast.literal_eval(soup.text)['attributes']

    df = pd.DataFrame(traits)
    df1 = df[df['trait_type']=='ACCESSORIES']

    accessories.append(df1['value'].values[0])

当我运行上述代码时,我收到以下错误:

IndexError: index 0 is out of bounds for axis 0 with size 0

发生这种情况是因为并非每个项目都有一个“附件”特征数据点。那么,对于那些没有空值、nan 或 0 值的项目,我将如何添加/填充 ACCESSORIES 特征?

【问题讨论】:

  • 嗨,你为什么不跳过这些案例,而不是尝试填补它们?

标签: json python-3.x pandas ipfs


【解决方案1】:

以下代码解决了这个问题:

# Import libraries
from bs4 import BeautifulSoup
import requests
import pandas as pd
import time
import ast

start_time = time.time()
s = requests.Session()

#Get URL and extract content
page=1
traits = []
accessories, backgrounds, shoes = [], [], []

while page != 100:

    params = {
        ('arg', f"Qmer3VzaeFhb7c5uiwuHJbRuVCaUu72DcnSoUKb1EvnB2x/{page}"),
    }

    content = s.get('https://ipfs.infura.io:5001/api/v0/cat', params=params, auth=('', ''))
    soup = BeautifulSoup(content.text, 'html.parser')
    page = page + 1
    
    traits = ast.literal_eval(soup.text)['attributes']

    df = pd.DataFrame(traits)
    df1 = df[df['trait_type']=='ACCESSORIES']

    try:
        accessories.append(df1['value'].values[0])
    except:
        'NONE'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 2021-10-12
    • 1970-01-01
    • 2016-02-09
    相关资源
    最近更新 更多