我有一个从csv创建的python Dataframe (df)。我想获取包含“PHONE”(或“phone”或“Phone”)的每个列名,并将它们的所有行更改为555555555的格式。因此:
(555)555-5555之间的数字应该是555555555,
555-555-5555将是555555555,
和/或其他信息。
我尝试了下面的方法,但是得到了一个语法错误。希望我至少有点接近:
phone_format = df.loc[:, df.columns.str.contains('PHONE')]
for col in phone_format:
df['col'] = df.['col'].map(lambda x: x.replace('.', '').replace(' ', '').replace('-', '').replace('(', '').replace(')', ''))
3条答案
按热度按时间xpszyzbs1#
使用
filter
来选择带有“phone”的列(使用(?i)phone
正则表达式时不区分大小写),使用apply
和str.replace
来删除非数字列,最后使用update
将DataFrame替换为。示例:
可再现的输入:
kgsdhlau2#
camsedfj3#
从使用您的代码作为最小工作示例的起点: