准备数据为python可读格式

时间:2013-08-23 08:27:43

标签: python list python-2.7 dictionary

我在csv文件中有一个包含2列(“IdNo”,“skillsList”)的文件。当我读到文件。它将整个文件作为字符串读取。 IdNo有一个serialNumber,skillsList有一个用户指定技能列表。所以我想找出技能的术语频率。

但我的问题是如何将数据转换为可访问的表单。我的数据看起来像这样。

>>> a1

'IdNo, skillsList\nBAXA0000206_NEENA_TIWARI_0.htm,"[u\'Training\', u\'E-Learning\', u\'PowerPoint\', u\'Teaching\', u\'Accounting\', u\'Team Management\', u\'Team Building\', u\'Microsoft Excel\', u\'Microsoft Office\', u\'Financial Accounting\', u\'Microsoft Word\', u\'Customer Service\']"\nBAXA0000227_ABDUR_RAZZAQUE_0.htm,"[u\'Telecommunications\', u\'Data Center\', u\'ISO 27001\', u\'Management\', u\'BS25999\', u\'Technology\', u\'Information Technology...\', u\'Certified PMP\\xae\', u\'Certified BS25999 Lead...\']"\nBAXA0000261_Priya _ Lobo_0.htm,"[u\'Market Research\', u\'Segmentation\', u\'Marketing Strategy\', u\'Consumer Behavior\', u\'Experience Working with...\']"

需要帮助。 感谢

1 个答案:

答案 0 :(得分:0)

这是我以字符串形式处理数据的一般例程。它可能不太适合你的情况(你的字符串有很多符号),但看看不会有害,对吗?

split()函数将字符串拆分为字符串列表,例如:

>>> a1 = 'id1, skill1\nid2, skill2\nid3, skill3'
>>> a2 = a1.split('\n')
>>> a2
>>> ['id1, skill1', 'id2, skill2', 'id3, skill3']

在这种情况下,a2显示行列表。进一步分开两列:

>>> a3 = [row.split(', ') for row in a2]
>>> a3
>>> [['id1', 'skill1'], ['id2', 'skill2'], ['id3', 'skill3']]
>>> for row in a3:
...     for col in row:
...             print col,
...     print ''
...
id1 skill1
id2 skill2
id3 skill3

要访问每列中的所有元素,请使用zip()函数:

>>> a4 = zip(*a3)
>>> a4
>>> [('id1', 'id2', 'id3'), ('skill1', 'skill2', 'skill3')]
>>> for col in a4:
...     for row in col:
...             print row,
...     print ''
...
id1 id2 id3
skill1 skill2 skill3