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

How to transfer strings into integers with pandas

我正在尝试将 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:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
~\AppData\Local\Temp/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'] 是无效语法

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

列 'Basic'、'Standard'、'Premium' 中的元素是货币格式的字符串,例如 '£ 5.99'。您可以将它们转换为浮点数(您需要为每一列执行此操作):

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