如何处理整数值列中的非数字条目

时间:2016-08-31 14:19:40

标签: python pandas

我有一个数据框df,其中一列count包含字符串。这些字符串大多可以转换为整数(例如0006),这就是我将用它们做的事情。但是count中的一些条目是空格的空格。我怎么能

  • 删除count值为空字符串的所有行。
  • 使用我选择的某个数值替换该列中的所有空白值。

如果有特别有效的方法,数据框非常大。

2 个答案:

答案 0 :(得分:3)

似乎你想要两件不同的东西。但首先,转换列to numeric并强制错误:

df['count'] = pd.to_numeric(df['count'], errors='coerce')

删除行(使用subset以避免从其他列中删除NaN):

df.dropna(subset=['count'])

替换为默认值:

df['count'] = df['count'].fillna(default_value)

答案 1 :(得分:2)

dropna

之后使用fillnapd.to_numeric(errosr='coerce')

考虑一个大熊猫系列s

s = pd.Series(np.random.choice(('0001', ''), 1000000), name='intish')

drop method 1 (不太健壮)

s[s != ''].astype(int)

drop method 2 (更强大)

pd.to_numeric(s, 'coerce').dropna().astype(int)

放弃时间

enter image description here

更强大的方法更快

填写方法1

pd.to_numeric(s, 'coerce').fillna(0).astype(int)

填写方法2

s.where(s.astype(bool), 0).astype(int)

填充时间

enter image description here

花费的时间与放弃

相同