试图从python pandas中的csv文件中删除nan

时间:2014-02-28 17:22:44

标签: python csv pandas nan phone-number

我正在尝试从最终的csv文件中删除nan值,该文件将为数字标牌提供数据。

我使用fillna删除空数据以防止'nan'出现在符号上。 fillna工作正常,但由于这些数据已格式化,我在空csv字段中得到()-

df = pd.read_csv(filename)
    df = df.fillna('') 
    df = df.astype(str)
    df['PhoneNumber']=df['CONTACT PHONE NUMBER'].apply(lambda x: '('+x[:3]+')'+x[3:6]+'-'+x[6:10])

我尝试编写if...else语句来分隔数组中的行;但由于格式化应用于整个列表,而不是按条目输入,这不起作用。

1 个答案:

答案 0 :(得分:1)

对lambda函数进行简单修改就可以完成这项任务:

>>> y=lambda x: (x and '('+x[:3]+')'+x[3:6]+'-'+x[6:10]) or ''
>>> y('123456789')
'(123)456-789'
>>> y('')
''

编辑:

你也可以用if-else构造替换和/或习语:

>>> y=lambda x: '('+x[:3]+')'+x[3:6]+'-'+x[6:10] if x else ''