使用此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,则创建另一个列表:
答案 0 :(得分:0)
您可以使用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]}
编辑基于评论:
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']]})