[英]Remove unwanted parts from strings in a range of columns
第1部分
与此问题类似,但我有一系列名为A-J的列,所有这些列都有连字符来代替带有数字值的Series上的NaN(请参见下面的示例)。 我如何替换所有这些,而不是一次如该答案所示遍历每一列。
Sample column A
1000
2000
3000
-
1000
第2部分
有没有办法使用正则表达式删除所有'-',',','。' 从数据帧?
第1部分
在将数据读入DataFrame时,可以将'-'定义为NaN值。 更具体地说,是na_values
在pd.read_csv()
调用中使用na_values
来实现的。
在这里查看文档
第2部分
正如MaxU先前建议的那样,您可以使用.replace()
如下所示:
df.replace(r'[\s\-,\.]+', r'', regex=True, inplace=True)
请注意,这对非字符串不会有任何影响。
希望这可以帮助!
您可以遍历各列。
选定的列:
>>> df = pd.DataFrame({'a': ['a-b', 'c-d'], 'b': ['x-y', 'z-z'], 'c': ['x-y', 'z-z']})
>>> df
a b c
0 a-b x-y x-y
1 c-d z-z z-z
>>> for col_name in 'ab':
df[col_name] = df[col_name].str.replace('-', '0')
>>> df
a b c
0 a0b x0y x-y
1 c0d z0z z-z
所有列:
>>> df = pd.DataFrame({'a': ['a-b', 'c-d'], 'b': ['x-y', 'z-z'], 'c': ['x-y', 'z-z']})
>>> for col_name in df.columns:
df[col_name] = df[col_name].str.replace('-', '0')
>>> df
a b c
0 a0b x0y x0y
1 c0d z0z z0z
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.