第1部分
与此question类似,但我有一系列名为A - J的列,所有列都用连字符代替系列上的NaN和数字值(参见下面的示例)。如何替换所有这些而不是一次遍历每一列,如答案中所示。
Sample column A
1000
2000
3000
-
1000
第2部分
有没有办法使用正则表达式删除所有' - ',',' ,'。'从数据框?
答案 0 :(得分:1)
第1部分
在将数据读入DataFrame时,可以将' - '定义为NaN值。更具体地说,在na_values
来电中使用pd.read_csv()
。
请参阅文档here
第2部分
正如MaxU早先建议的那样,您可以像这样使用.replace()
:
df.replace(r'[\s\-,\.]+', r'', regex=True, inplace=True)
请注意,这不会对非字符串产生任何影响。
希望这有帮助!
答案 1 :(得分:0)
您可以遍历列。
选定栏目:
>>> 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