我有一个数字数组(整数或浮点数),它实际上是DataFrame对象中的一列,我想替换所有0的实例为“NaN”或某些文本。(或将1-》“M”和2-》“F”进行转换。)
但是当我写
但是当我写
array[i] = "text"
时,我遇到了问题,出现错误:`convert` has no method matching convert(::Type{Int64}, ::ASCIIString)
我该怎么解决这个问题?另外,有什么最有效的方法可以达到 Pandas 的 df.column.replace({1:"M", 2:"F"}, inplace=True)
的效果吗?
我尝试了以下代码:
df[:sex] = [ {1 => "M", 2 => "F"}[i] for i in df[:sex] ]
...但当我只替换一些值时,就会出现问题(这时会出现“找不到键X”的错误,因为我传递了一个不在字典中的值 [:sex])。
get
方法 -- 即get(replace_dict, i, i)
-- 来避免在 Python 中使用replace_dict.get(i, i)
时出现缺失键错误。 - DSMDataFrame
中列的内容必须全部是相同类型。如果你想在同一列中混合数字和字符串,我认为你需要创建一个完全新的类型为Union(Number, String)
或Any
的列。如果该列已经是Any
类型,则在列下降循环中使用if blah == 0; blah = "NaN"; end
有什么问题吗? - Colin T Bowers