python 两个列表相互映射_技术贴 | python: 字典、列表、表格相互转换

8e1ebb370f00fe76c12f2908bd65b630.gif点击蓝字↑↑↑“微生态”,轻松关注不迷路

72dc2e6527117b949c84bc4ab072dfc3.png

本文由阿童木根据实践经验而整理,希望对大家有帮助。

原创微文,欢迎转发转载。

掌握字典、列表、表格相互转换能解决掉很多数据处理过程中遇到的格式问题。下面通过简单的测试来看如何转换。

要点总结

#字典<=>列表:
list(Dict); list(Dict.values())
dict(zip(list1, list2))
#列表<=>表格:
pd.DataFrame(list)
pd[col_name].tolist(); pd.loc[row_name].tolist()
#字典<=>表格:
pd.DataFrame(Dict)
table.to_dict()

一、字典 <=> 列表

1.1 字典 > 列表

# 构造字典
Dict = {'a' : 'value_a', 'b' : 'value_b', 'c' : 'value_c'}

# 字典 => 列表
list(Dict)
> ['a', 'c', 'b']
list(Dict.values())
> ['value_a', 'value_c', 'value_b']

1.2 字典 < 列表

dict(zip(list(Dict), list(Dict.values())))
{'a': 'value_a', 'c': 'value_c', 'b': 'value_b'}
# 也能看出字典是无序的

二、列表<=> 表格

2.1 列表 > 表格

import pandas as pd
x = ['a', 'c', 'b']
y = ['value_a', 'value_c', 'value_b']
pd.DataFrame(y, x)
>         0
>a  value_a
>c  value_c
>b  value_b

# 或者
z = []
z.append(x)
z.append(y)
pd.DataFrame(z)
>         0        1        2
>0        a        c        b
>1  value_a  value_c  value_b
pd.DataFrame(z).T
>   0        1
>0  a  value_a
>1  c  value_c
>2  b  value_b

2.2 列表 < 表格

table = pd.DataFrame(z).T
# 一列 > list
table[0].tolist()
> ['a', 'c', 'b']
# 一行 > list
table.loc[0].tolist()
['a', 'value_a']

三、字典<=> 表格

3.1 字典 > 表格

# 构造字典
Dict = {'a' : [1,2,3,4], 'b' : [5,6,7,8], 'c' : [9,10,11,12]}
# 字典 > 表格
pd.DataFrame(Dict)
>   a  b   c
>0  1  5   9
>1  2  6  10
>2  3  7  11
>3  4  8  12

3.2 字典 < 表格

table = pd.DataFrame(Dict)
table.to_dict()
{'c': {0: 9, 1: 10, 2: 11, 3: 12}, 'b': {0: 5, 1: 6, 2: 7, 3: 8}, 'a': {0: 1, 1: 2, 2: 3, 3: 4}}



5a4767c78db515cbabd06c449f7dbbbf.png你可能还喜欢5a4767c78db515cbabd06c449f7dbbbf.png

1 技术贴 | 16S专题 | 简单介绍如何用自己的笔记本处理高通量16S数据

2 技术贴 | 宏基因组专题 | 组装工具盘点和比较

3 技术贴 | R语言菌群Alpha多样性分析和绘图

4 技术贴 | 宏转录组专题 | DDBJ数据库:宏转录组测序数据下载

5 技术贴 | R语言pheatmap聚类分析和热图


微生态科研学术群期待与您交流更多微生态科研问题

(联系微生态老师即可申请入群)

78d4089c406d96b35caa072a19f19ff5.png

了解更多菌群知识,请关注“微生态”。

74b5a0f3e8c3d216b11cc15aaacd741b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值