0

我是 python 新手,正在练习 pandas。在我的数据框中有一个名为 NET_REVENUE 的列,它的类型是字符串。我正在尝试将其转换为浮点数以进行进一步分析。

但是,当我运行以下代码时,它会给出我不太理解的反馈。我很肯定原始列中没有缺失值。显然有些已成功转换为浮点数。但是 4732 中的 2918 不是。

有人可以帮忙吗?

sep_IM_2019['NET_REVENUE_numeric'] = pd.to_numeric(sep_IM_2019['NET_REVENUE'], errors='coerce')

/Users/Leo/opt/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:1:SettingWithCopyWarning:试图在数据帧的切片副本上设置值。尝试改用 .loc[row_indexer,col_indexer] = value

请参阅文档中的注意事项: https ://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy """启动 IPython 内核的入口点.

sep_IM_2019.NET_REVENUE_numeric.isnull().sum()
#2918


    sep_IM_2019.NET_REVENUE_numeric
8       NaN
46      NaN
56      NaN
62      NaN
71      NaN
         ..
76472   NaN
76476   NaN
76503   NaN
76505   NaN
76510   NaN
Name: NET_REVENUE_numeric, Length: 4732, dtype: float64
4

2 回答 2

0

这个答案可能会帮助您理解警告 - https://stackoverflow.com/a/20627316/8231447

至于转换为浮点数 - 我不确定您是要运行 to_numeric,还是在系列上调用 .astype(float)

sep_IM_2019["NET_REVENUE_numeric"] = ]sep_IM_2019['NET_REVENUE'].astype(float).

希望这可以帮助!

于 2020-06-11T14:16:56.570 回答
0

您使用errors='coerce'了 ,因此当它无法转换为 float 时,它会为您提供 NaN 而不是引发错误。

尝试在to_numeric没有该参数的情况下运行以查看究竟是什么问题。您的某些字符串可能无法转换。仔细看看它们:

sep_IM_2019.loc[8,'NET_REVENUE']

如果我相信你的清单,应该是第一个有这个问题的字符串。

于 2020-06-11T14:17:03.960 回答