使用熊猫将字符串转换为浮在数据框中的

时间:2020-06-11 14:05:10

标签: python-3.x pandas type-conversion

我是python的新手,正在与pandas一起练习。在我的数据框中,有一列称为NET_REVENUE,其类型为字符串。我正在尝试将其转换为float以便进一步分析。

但是,当我运行以下代码时,它会提供反馈,我不太了解。 我确信原始列中没有缺失的值。显然,有些已成功转换为float。但是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:试图在一个副本上设置一个值 从DataFrame切片。尝试使用.loc [row_indexer,col_indexer] = 值

请参阅文档中的警告: 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

2 个答案:

答案 0 :(得分:0)

此答案可能有助于您理解警告-https://stackoverflow.com/a/20627316/8231447

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

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

希望这会有所帮助!

答案 1 :(得分:0)

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

尝试在不使用该参数的情况下运行to_numeric来确切地找出问题所在。您的某些字符串很可能无法转换。仔细看看它们:

sep_IM_2019.loc[8,'NET_REVENUE']
如果我相信您的清单,

应该是第一个有此问题的字符串。