我绕圈子,尝试了很多不同的方法,所以我猜我的核心理解是错误的。如果您能帮助我理解我的编码/解码问题,我将不胜感激。
我从SQL导入数据帧,似乎有些数据类型:float64被转换为Object。因此,我不能做任何计算。我无法将对象转换回float64。
测向头()
Date WD Manpower 2nd CTR 2ndU T1 T2 T3 T4
2013/4/6 6 NaN 2,645 5.27% 0.29 407 533 454 368
2013/4/7 7 NaN 2,118 5.89% 0.31 257 659 583 369
2013/4/13 6 NaN 2,470 5.38% 0.29 354 531 473 383
2013/4/14 7 NaN 2,033 6.77% 0.37 396 748 681 458
2013/4/20 6 NaN 2,690 5.38% 0.29 361 528 541 381
数据类型
WD float64
Manpower float64
2nd object
CTR object
2ndU float64
T1 object
T2 object
T3 object
T4 object
T5 object
dtype: object
SQL表:
convert_对象已弃用。
对于pandas>;=0.17.0,使用pd.to_numeric
我在一个数据框(
df
)中遇到了这个问题,这个数据框是从一个包含多个内部标题行的Excel工作表中创建的。从
df
中清除内部头行后,列的值为“非空对象”类型(DataFrame.info()
)。此代码一次性将多个列的所有数值转换为int64和float64:
您可以通过调用^{} 来转换大多数列:
对于列“2nd”和“CTR”,我们可以调用矢量化的^{} 方法来替换千位分隔符并删除“%”符号,然后^{} 来转换:
或者可以在不调用
astype
的情况下执行上面的字符串处理操作,然后调用convert_objects
一次性转换所有内容。更新
由于版本
0.17.0
convert_objects
已被弃用,并且没有顶级函数来执行此操作,因此您需要执行以下操作:df.apply(lambda col:pd.to_numeric(col, errors='coerce'))
请参阅docs和相关问题:pandas: to_numeric for multiple columns
相关问题 更多 >
编程相关推荐