G木木夕 发表于 2016-01-27 22:24

用python把名字和操作数据怎么对应起来呢?感谢指导!

本帖最后由 G木木夕 于 2016-01-29 17:06 编辑

像:
name1 name2 ...name5
1         3         6
2         9         6
4         9         3.2
6         9         1
求每两两列皮尔逊相关系数后,输出结果是共C5 2个(5个样本两两组合个数)数据构成的list,
但我要是把列的名字——name2,name3 =...name1,name5 = .........就是与相应的结果对应上,该怎么处理?看了很久python,想不出怎么办?(求代码~~~)

Linux_manne 发表于 2016-01-28 09:14

题意 还是出了名的 看不懂.....

zhonghua7896321 发表于 2016-01-28 23:20

我也没看懂题,楼主请把题目整理一下吧

G木木夕 发表于 2016-01-29 17:07

回复 1# G木木夕
我是用的linux系统,vim编辑

   

zhonghua7896321 发表于 2016-01-30 00:14

假设你的题意是每列中的名字和其余数据相对应,用字典实现test@ubuntu:~/Python$ cat text.txt
name1 name2 name5
1         3         6
2         9         6
4         9         3.2
6         9         1
test@ubuntu:~/Python$ python
Python 2.7.10 (default, Oct 14 2015, 16:09:02)
on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> result = {}
>>> lineList = []
>>> with open('text.txt') as f:
...   lines = f.readlines()
...   for line in lines:
...             lineList.append(line.strip().split())
...   print "\n-------\n",lines,"\n-------\n"
...   titles = lineList
...   for j in xrange(len(titles)):
...             result] = []
...   for i in xrange(1, len(lineList)):
...             for j in xrange(len(titles)):
...                     result].append(lineList)
...

-------
['name1 name2 name5\n', '1         3         6\n', '2         9         6\n', '4         9         3.2\n', '6         9         1\n']
-------

>>> print result
{'name5': ['6', '6', '3.2', '1'], 'name2': ['3', '9', '9', '9'], 'name1': ['1', '2', '4', '6']}
>>>

zhonghua7896321 发表于 2016-01-30 00:20

用列表推导式实现更简洁{:qq33:}test@ubuntu:~/Python$ cat text.txt
name1 name2 name5
1         3         6
2         9         6
4         9         3.2
6         9         1
test@ubuntu:~/Python$ python
Python 2.7.10 (default, Oct 14 2015, 16:09:02)
on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> result = {}
>>> with open('text.txt') as f:
...   lines = f.readlines()
...   lineList =
...   titles = lineList
...   for j in xrange(len(titles)):
...             result] = []
...   a = ].append(lineList) for i in xrange(1, len(lineList)) for j in xrange(len(titles))]
...
>>> print result
{'name5': ['6', '6', '3.2', '1'], 'name2': ['3', '9', '9', '9'], 'name1': ['1', '2', '4', '6']}
>>>

G木木夕 发表于 2016-02-14 10:54

感谢大神!!!回复 6# zhonghua7896321


   
页: [1]
查看完整版本: 用python把名字和操作数据怎么对应起来呢?感谢指导!