我正在尝试从最终的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
语句来分隔数组中的行;但由于格式化应用于整个列表,而不是按条目输入,这不起作用。
答案 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 ''