【发布时间】:2018-06-28 07:25:25
【问题描述】:
我将一个相对较大的 csv (~200Mb) 数据集导入到 pandas 中,其中一些列包含一个奇怪的“.”。字符串(实际上是一个空单元格)或 NaN。其他列包含 NaN 或空字符串。在第一种情况下,我想将奇怪的字符串转换为 NaN。在第二种情况下,我想将 NaN 转换为空字符串。我一直在尝试一些方法,但他们没有做我想要的。请注意,我不想使用 dropna 或任何影响其他行的东西。
例如
df['Col1'].replace(np.nan, '', regex=True)
在该列的某些行中包含 0。
举个例子,我想转换一下:
Col1 Col2 Col
' .' NaN 3
NaN ' .' 1
到
Col1 Col2 Col
NaN NaN 3
NaN NaN 1
并转换
Col1 Col2 Col
"" NaN 3
NaN 5 1
5 3 4
到
Col1 Col2 Col
"" "" 3
"" 5 1
5 3 4
感谢您的帮助
【问题讨论】:
-
第一种情况很简单。但第二种情况……你为什么要这样做?
-
有几个原因。例如,其中之一,我想从这些列中获取假人。 Pandas 将创建列 "" 和列 nan。
-
不,pandas 会忽略 NaN。 OTOH,那些空字符串不会。你希望他们忽略还是不?
-
我想让它们在整个列中保持一致。这些问题是原始 excel 文件生成方式的遗留问题,当我想使用这些列时,它确实会产生问题。
-
例如,当我有这种异质性时,我在添加 Col1 和 Col2 的元素时遇到问题