我想将表格(表示为列表列表)转换为Pandas DataFrame.作为一个极其简化的例子:
a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']]
df = pd.DataFrame(a)
Run Code Online (Sandbox Code Playgroud)
将列转换为适当类型的最佳方法是什么,在这种情况下,将第2列和第3列转换为浮点数?有没有办法在转换为DataFrame时指定类型?或者最好先创建DataFrame,然后循环遍历列以更改每列的类型?理想情况下,我想以动态方式执行此操作,因为可能有数百列,我不想确切地指定哪些列属于哪种类型.我可以保证的是,每列包含相同类型的值.
如何将包含字符串和NaN值的DataFrame列转换为浮点数.还有另一列,其值为字符串和浮点数; 如何将整个列转换为浮点数.
我的代码中有这一行将数据转换为数字...
data["S1Q2I"] = data["S1Q2I"].convert_objects(convert_numeric=True)
Run Code Online (Sandbox Code Playgroud)
问题是现在新的pandas发布(0.17.0)说这个函数已被弃用..这是错误:
FutureWarning: convert_objects is deprecated.
Use the data-type specific converters pd.to_datetime,
pd.to_timedelta and pd.to_numeric.
data["S3BD5Q2A"] = data["S3BD5Q2A"].convert_objects(convert_numeric=True)
Run Code Online (Sandbox Code Playgroud)
所以,我去了新的文档,我找不到任何如何使用新函数转换我的数据的例子......
它只说这个:
"不推荐使用DataFrame.convert_objects,而选择类型特定的函数pd.to_datetime,pd.to_timestamp和pd.to_numeric(0.17.0中的新增功能)(GH11133)."
你能帮忙的话,我会很高兴!
我的问题和这个类似。
我想将数据框中的所有值转换为浮点型。但更需要的是忽略无法发生此类转换的行。
例如,给定字符串 '0.9',它将成功转换为浮点数,但像 'why' 这样的字符串将通过错误。我想删除数据框中的所有此类行,这些行会出现在错误情况下。