使用python清理文本数据

时间:2017-03-02 22:59:51

标签: python text dataframe

我正在学习python的例子。也许我必须学习数据结构以完全内化函数,但我希望有人可以在这个阶段帮助我。

现在,我正在清理由熊猫数据框堆叠的文本数据。

我得到了以下结果,我想要做的就是为每个拆分文本提取最后两个元素。

[['Australian Centre for Ancient DNA',
  ' School of Biological Sciences',
  ' University of Adelaide',
  ' Adelaide',
  ' South Australia 5005',
  ' Australia'],
 ['Department of Ecology and Evolutionary Biology',
  ' Ramaley Biology',
  ' University of Colorado',
  ' Boulder',
  ' CO 80309',
  ' USA']]

所以,我的试验就像是

df["zip"] = df["Af_split_split"]
i = 0
j = 0 
df.iloc[i,7][j] = df.iloc[i,6][j][len(df.iloc[i,6][j])-2:len(df.iloc[i,6][j])-1]

然而,当我尝试它时,数据框中另一列中的元素也被更改。 (参见Af_split的第一行,Af_split_split,zip具有相同的值)

我该如何处理这个问题?

enter image description here

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,从您描述的症状来看,您的问题是一个经典问题:您需要复制列表并修改副本而不修改原件。这已经在堆栈溢出时得到了解答,请参见此处:How to clone or copy a list?

对于您的具体示例,解决方案是将您分配给df [“zip”]的行修改为:

df["zip"] = df["Af_split_split"][:]

没有数字的切片操作符将创建列表的新副本(而不是创建指针),以便对副本的修改不会影响原始文件。