如何从子列表中的行创建字典?

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']]})

以上是关于如何从子列表中的行创建字典?的主要内容,如果未能解决你的问题,请参考以下文章

从子片段访问父片段方法

如何创建片段以重复变量编号中的代码行

Swift UI 如何从子视图中检索状态

如何使用一个键将多个列表值创建到python中的字典中?

13 个非常有用的 Python 代码片段

python multiprocessing:如何从子进程修改在主进程中创建的字典?