当前位置: 首页 > 知识库问答 >
问题:

在jupyter中将字符串转换为数字

罗华翰
2023-03-14

这是我的代码:

def value_and_wage_conversion(value):
    if isinstance(value,str):
        if 'M' in out:
            out = float(out.replace('M', ''))*1000000
        elif 'K' in value:
            out = float(out.replace('K', ''))*1000
        return float(out)

fifa_18['Value'] = fifa_18['Value'].apply(lambda x: value_and_wage_conversion(x))
fifa_18['Wage'] = fifa_18['Wage'].apply(lambda x: value_and_wage_conversion(x))

以下是错误消息:

在7返回浮点数(out)--------------------------------------------------------------------------- 的最后一次调用8----

c:\users\brain\appdata\local\programs\python39\lib\site packages\pandas\core\series.py in apply(self,func,convert\u dtype,args,**kwds)4136
else:4137 values=self.astype(object)。\u values-

pandas_libs\lib.pyx熊猫_libs.lib.map_infer()

输入(x)7返回浮动(输出)8----

在值和工资转换(值)中,1定义值和工资转换(值):2如果存在(值,str):----

分配前引用的局部变量out

共有1个答案

狄睿
2023-03-14

你就快到了,但你需要修复你的功能

举个例子

import numpy as np
import pandas as pd

# generate a random sample
values = ['10M', '10K', 10.5, '200M', '200K', 200]
size = 100
np.random.seed(1)
df = pd.DataFrame({
    'Value': np.random.choice(values, size),
    'Wage': np.random.choice(values, size),
})

print(df)

   Value  Wage
0    200   200
1   200M  200M
2   200K   200
3    10M   10M
4    10K  200M
..   ...   ...
95  200K   200
96   200  200M
97  10.5  200K
98  200K  10.5
99  200M   10M

[100 rows x 2 columns]

定义功能并应用

def value_and_wage_conversion(value):
    if isinstance(value, str):
        if 'M' in value:
            value = float(value.replace('M', ''))*1000000
        elif 'K' in value:
            value = float(value.replace('K', ''))*1000
        return float(value)

df['Value'] = df['Value'].apply(lambda x: value_and_wage_conversion(x))
df['Wage'] = df['Wage'].apply(lambda x: value_and_wage_conversion(x))

print(df)

          Value         Wage
0         200.0        200.0
1   200000000.0  200000000.0
2      200000.0        200.0
3    10000000.0   10000000.0
4       10000.0  200000000.0
..          ...          ...
95     200000.0        200.0
96        200.0  200000000.0
97         10.5     200000.0
98     200000.0         10.5
99  200000000.0   10000000.0

[100 rows x 2 columns]

并检查

df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 100 entries, 0 to 99
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   Value   100 non-null    float64
 1   Wage    100 non-null    float64
dtypes: float64(2)
memory usage: 1.7 KB
 类似资料:
  • 问题内容: 我有一个; 我想转换为字符串数组。我该怎么做?有内置的Java函数吗?可以手动完成,但是我正在搜索Java内置函数。 我想要一个数组,其中字符串的每个字符都是一个字符串。像char’n’现在将是存储在数组中的字符串“ n”。 问题答案: 要开始你的作业,请在正则表达式上拆分字符串,该表达式可以为空字符串: 产生数组: 留空的第一条目留给读者练习:-) 注意:在Java 8中,不再包含空

  • 问题内容: 如果字符串是java中的任何有效数字(例如int,long,double等),我如何将字符串转换为抽象数字。 我将不知道字符串中数字的类型,所以我不能使用特定的原始解析(例如Integer.parseInt,Long.parseLong等)。有什么通用的方法可以转换它吗? 例如: 字符串->数字 “ 23423”-> 23423 “ 34.3”-> 34.3 “ 45364573747

  • 问题内容: 我想将a转换为Character类的对象数组,但无法执行转换。我知道我可以使用该方法将String转换为原始数据类型类型为“ char”的数组,但这无助于将String转换为Character类型的对象数组。 我将如何去做? 问题答案: 用这个:

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字

  • 问题内容: 有没有一种方法可以将整数转换为PHP中的字符串? 问题答案: 您可以使用该函数将数字转换为字符串。 从维护的角度来看,它显然是您正在尝试做的事情,而不是其他一些更深奥的答案。当然,这取决于您的上下文。

  • 我想有一个JPQL查询,它可能看起来像: 其中a.num是一个整数。我想将此转换为字符串以使用类似的条件。然而,上述转换在JPQL中不起作用。我该如何实现这一点?