futui 发表于 2023-5-6 15:20:35

想把数量列转变为float,请大师帮忙,谢谢

想把数量列转变为float,请大师帮忙,谢谢

import pandas as pd
data = [["2345", "A", "2"],
      ["004243", "C", "34"],
      ["162411", "E", "暂无数据"],
      ["163208", "G", "3456"]]
columns = ["编号", "名称", "数量"]
df = pd.DataFrame(data, columns=columns)


print(df)

isdkz 发表于 2023-5-6 15:24:51

当然可以帮忙,首先我们需要将"暂无数据"替换为NaN,然后再将数量列转换为float类型。以下是修改后的代码:

import pandas as pd
import numpy as np

data = [["2345", "A", "2"],
      ["004243", "C", "34"],
      ["162411", "E", "暂无数据"],
      ["163208", "G", "3456"]]
columns = ["编号", "名称", "数量"]
df = pd.DataFrame(data, columns=columns)

# 替换"暂无数据"为NaN
df['数量'] = df['数量'].replace('暂无数据', np.nan)

# 将数量列转换为float类型
df['数量'] = df['数量'].astype(float)

print(df)


这样你就可以得到一个将"数量"列转换为float类型的DataFrame。

futui 发表于 2023-5-6 15:41:13

    "execution_count": null,
NameError: name 'null' is not defined

歌者文明清理员 发表于 2023-5-6 16:56:11

futui 发表于 2023-5-6 15:41
"execution_count": null,
NameError: name 'null' is not defined

您已经使用了比较好的方式来将数量列转换为float类型,使用astype()函数将数量列中的元素转换为浮点数即可。

以下是修改后的示例代码:

```
import pandas as pd
import numpy as np

data = [["2345", "A", "2"],
      ["004243", "C", "34"],
      ["162411", "E", "暂无数据"],
      ["163208", "G", "3456"]]
columns = ["编号", "名称", "数量"]
df = pd.DataFrame(data, columns=columns)

# 替换"暂无数据"为NaN
df['数量'] = df['数量'].replace('暂无数据', np.nan)

# 将数量列转换为float类型
df['数量'] = df['数量'].astype(float)

print(df)
```

输出结果如下:

```
       编号 名称      数量
0    2345A   2.0
1004243C    34.0
2162411E   NaN
3163208G3456.0
```

可以看到,数量列已经被成功转换为float类型,并且原来的"暂无数据"也被替换成了NaN。
页: [1]
查看完整版本: 想把数量列转变为float,请大师帮忙,谢谢