【发布时间】:2015-03-13 07:25:57
【问题描述】:
我是数据分析方面的 Python/Pandas 初学者。我正在尝试从有关字母频率的维基百科文章中导入(/刮擦)表格,对其进行清理,然后将其转换为数据框。
这是我用来将表格转换为名为 letter_freq_all 的数据框的代码:
import pandas as pd
import numpy as np
letter_freq_all = pd.read_html('http://en.wikipedia.org/wiki/Letter_frequency', header=0)[4]
letter_freq_all
我想清理数据并正确格式化以进行数据分析:
- 我想从列名中删除带有数字的方括号,并确保两边没有空白填充
- 我还想从每一列中删除百分号和所有星号,以便将每一列转换为浮点类型。
- 到目前为止,我没有成功尝试从所有列中删除 % 符号。
这是我试过的代码:
letter_freq_all2 = [str.replace(i,'%','') for i in letter_freq_all]
我没有得到一个没有任何 % 符号的新数据框,而是得到了 letter_freq_all 中所有列的列表:
['Letter','French [14]','German [15]','Spanish [16]','Portuguese [17]','Esperanto [18]','Italian[19]','Turkish[20]','Swedish[21]','Polish[22]','Dutch [23]','Danish[24]','Icelandic[25]','Finnish[26]','Czech']
然后我试着去掉一列中的 % 符号:
letter_freq_all3 = [str.replace(i,'%','') for i in letter_freq_all['Italian[19]']]**
当我这样做时,str.replace 方法有点工作 - 我得到了一个没有任何 % 符号的列表(我期待得到一个系列)。
那么,我怎样才能摆脱我的数据框 letter_freq_all 中所有列中的 % 符号?另外,我怎样才能摆脱所有列中的所有括号和额外的空白填充?我猜我可能不得不使用.split() 方法
【问题讨论】:
标签: python string pandas dataframe web-scraping