如何使用panda将字符串转换为整数



我正试图将字符串从plans_data:转换为整数

import pandas as pd
from bs4 import BeautifulSoup
import requests
plans_data = pd.DataFrame(columns = ['Country', 'Currency', 'Mobile', 'Basic', 'Standard', 'Premium'])
for index, row in countries_list.iterrows():
country = row['ID']  
url = f'https://help.netflix.com/en/node/24926/{country}'
page = requests.get(url)
soup = BeautifulSoup(page.content, "html.parser")
results = soup.find("table", class_="c-table")
try:
plan_country = pd.read_html(results.prettify())[0] #creates a list(!) of dataframe objects
plan_country = plan_country.rename(columns = {'Unnamed: 0':'Currency'})
plan_country = pd.DataFrame(plan_country.iloc[0,:]).transpose()
plans_data = pd.concat([plans_data, plan_country], ignore_index=True)
except AttributeError:
country_name = row['Name']
print(f'No data found for {country_name}.')
plans_data.loc[index, 'Country'] = row['Name']
plans_data

首先,我声明使用函数float:进行转移

# 1. Here we import pandas
import pandas as pd
# 2. Here we import numpy
import numpy as np
ans_2_1_ = float(plans_data['Basic', 'Standard', 'Premium'])

然而,我总是得到名称错误:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
~AppDataLocalTemp/ipykernel_15368/3072127414.py in <module>
3 # 2. Here we import numpy
4 import numpy as np
----> 5 ans_2_1_ = float(plans_data['Basic', 'Standard', 'Premium'])
NameError: name 'plans_data' is not defined

我该如何解决这个问题?

如果我的代码不适合我的任务;将字符串转换为整数";,你能告诉我如何皈依吗?

错误表明第二段代码不知道plans_data是什么,所以首先确保它们plans_data是在你这样做的地方定义的,即在同一文件或同一Jupyter笔记本中

第二个问题是plans_data['Basic', 'Standard', 'Premium']不是有效的语法

第三,也可能是您真正的问题,如何将这些列中的值转换为浮点值。

"基本"、"标准"one_answers"高级"列中的元素是货币格式的字符串,例如'£ 5.99'。您可以将它们转换为浮动(您需要为每列执行此操作(:

ans_2_1_ = plans_data['Basic'].str[1:].astype(float)
... # same for Standard and Premium

最新更新