2016-11-14 71 views
-1

我正在读取dataframe列中的一些数据,如果值包含“ - ”,我会对每个值执行一些操作。这些操作包括基于“ - ”的分割。但是我不明白为什么在列表中的每个值有一个 “\ n *” 作为实例python列表中有自动不需要的特殊字符 n +

[ '2010 \ N1', '200 \ 450 N2 \ N3',...,' 1239 \ N1000' ]

这里是我的代码示例:

splited = [] 
    wantedList = [] 

    val = str(x)      # x represents the value in the value read from the dataframe column 

    print val       # the val variable does not does not contain those special characters 

    if val.find('-') != -1:    
      splited = val.split('-') 
      wantedList.append(splited[0]) 

    print splited      # splited list contains those special characters 

    print wantedList     # wantedList contains those special characters 

我想这与我创建的列表的方式或我追加给它的方式做。

有谁知道为什么这样的事情确实发生

+0

你能提供你正在阅读的日期吗?你有没有试过在拆分的数据上使用'strip'(基本上用'splited [0] .strip()')替换'splited [0]')?你能否提供一个'val'的例子? –

回答

3

有没有什么在你的代码可能可能自动地在一些随机的位置中添加一个新行字符的字符串。我会说这些字符已经在字符串中,但print未显示为\n,而是作为新行。

您可以确认通过打印字符串的表示:

print repr(val) 

如果你想出来的字符串,你可以用一个简单的str.replace所有\n

+0

print repr(val)显示它..但是str.replace没有看到它。因此该列表保持不变。这是代码'splitted2 = [t.replace(''\\“n','')for t in splited]''和'print splited2'显示没有区别 – akaAlso

+0

它确实有效。非常感谢。我不得不做一个简单的't.replace('\ n','')'而不是't.replace(''\\“n','')' – akaAlso