【发布时间】:2018-12-04 23:04:27
【问题描述】:
我有一个 Pandas 数据框,它的列看起来像这样:
df:
Column0 Column1 Column2
'MSC' '1' 'R2'
'MIS' 'Tuesday' '22'
'13' 'Finance' 'Monday'
总的来说,这些列中包含实际的字符串,但也包含字符串格式的数值(整数)。
我发现 this 关于 pd.to_numeric 和 astype() 方法的好帖子,但我不知道是否可以或如何在我的情况下使用它们。
使用:
pd.to_numeric(df, errors = 'ignore')
只会导致跳过整列。我不想跳过整列,只想跳过那些无法转换的列中的字符串,继续下一个条目并尝试转换下一个字符串。
所以最后,我的数据框将如下所示:
df:
Column0 Column1 Column2
'MSC' 1 'R2'
'MIS' 'Tuesday' 22
13 'Finance' 'Monday'
是否有一种有效的方法可以遍历这些列并实现这一点?
最好的问候, 一月
编辑: 感谢您的所有建议!由于我还是 python 初学者,@coldspeed 和 @sacul 的答案对我来说更容易理解,所以我会选择其中一个!
【问题讨论】:
-
这不适合 pandas 模型。您正在单个列中寻找混合类型...除非您只是更喜欢 pandas 语法,否则您将失去在数据处理中可能获得的任何效率收益
-
您还需要保留不会转换的字符串吗?如果是这样,将它们移动到新列是否可以接受?单列中的混合数据类型不起作用。
-
@roganjosh,虽然有时当您使用 pandas 清理收到的混合类型数据时,这是相关的。
标签: python string pandas dataframe numeric