如何从子列表中的行创建字典?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从子列表中的行创建字典?相关的知识,希望对你有一定的参考价值。
使用此DataFrame:
Gp Wo Me CHi
1 0 1 0
2 1 0 0
3 0 1 0
4 1 0 0
5 0 2 0
6 1 0 0
我想创建像这样的字典:
a={'Gp':['Wo', 'Me','CHi']}
但是在第'Gp'列第5行的情况下,'Me'列的值为2,我该如何转换为该值:
a={5:[0, [1,1],0]}
如果值是> 1,则像创建另一个列表一样:
答案
您可以使用df.itterrows()
并检查“ Me”列的行值是否等于2并编写一条if语句:
for index, row in df.iterrows():
if row['Me'] == 2:
print({row['Gp']: [row['Wo'], [1, 1], row['CHi']]})
else:
print({row['Gp']: [row['Wo'], row['Me'], row['CHi']]})
这将输出以下字典:
{1:[0,1,0]}] >>
{2:[1,0,0]}] >>
{3:[0,1,0]}] >>
{4:[1,0,0]}] >>
{5:[0,[1,1],0]}] >>
{6:[1,0,0]}] >>
EDIT
根据评论:for index, row in df.iterrows(): if row['Me'] <= 1: print({row['Gp']: [row['Wo'], row['Me'], row['CHi']]}) else: print({row['Gp']: [row['Wo'], [1 for _ in range(row['Me'])], row['CHi']]})
以上是关于如何从子列表中的行创建字典?的主要内容,如果未能解决你的问题,请参考以下文章