我在从CSV文件中读取的数据框中有几列似乎混合了nan
和字符串(数据框还有一些其他列是浮点数,带有一些nan
值以及),例如:
[nan '12/31/1990 12:00:00 AM' '06/03/1991 12:00:00 AM'
'09/15/1991 12:00:00 AM' '11/11/1991 12:00:00 AM']
我有兴趣将其转换为
[nan '12/31/1990' '06/03/1991'
'09/15/1991' '11/11/1991']
这个问题分为四个部分:
假设我想转换上面示例中的字符串以删除时间,例如使用函数
def rem_t_from_d(x): return x.split(sep = ' ')[0]
我在考虑转换上面的函数来处理nan
类型(float)?将字符串列中的任何缺失值(从CSV中读取时)转换为nan
(浮点数),即使字符串中的其余列也是如此吗?
如何在一列大熊猫上应用此功能?在pandas文档中,函数的结构以
给出 DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)
但我没有看到任何将其应用于数据框列的能力。
如何检查数据框中的元素是否为nan
?文档enter link description here提供了如何检查整列中是否有nan
(例如使用.notnull()
)以及如何将元素分配给nan
的示例(例如使用{ {1}}),但不是如何检查。我尝试使用= np.nan
来检查np.isnan
,但这似乎给了我一个类型错误。
此外,在熊猫中,R中的nan
,NA_integer_
,NA_real_
,NA_character_
是否相同?如果需要,整个列可以指定为字符串类型,而不是字符串和浮点数的混合?
我正在使用Python 3.4