我有以下数据框,我试图创建新的C列,使其基于列'A'和'B'的累积值作为字典。而且,如果列'B'中的'0',则该键的条目将从'C'中删除
df = DataFrame({'A' : [1,2,3,2,3,2],
'B':['Hi','Hello','HiWorld','HelloWorld','0','0']})
for indx,row in df.iterrows():
df['C'].append(dict(zip([row['A'],row['B']])))
我在C列中寻找以下输出:
A B C
0 1 Hi {1:Hi}
1 2 Hello {1:Hi,2:Hello}
2 3 HiWorld {1:Hi,2:Hello,3:HiWorld}
3 2 HelloWorld {1:Hi,2:HelloWorld,3:HiWorld}
4 3 0 {1:Hi,2:HelloWorld}
5 2 0 {1:Hi}
我尝试过使用cumsum,concat& amp; series.shift(1)但有一个块。现在我遇到了使用dict&拉链似乎是干净的解决方案,但对我不起作用。任何建议。
答案 0 :(得分:0)
试试这个:
d = dict()
column = list()
for _, a, b in df.itertuples():
if b != '0':
d[a] = b
else:
d.pop(a, None)
column.append(d.copy())
df['C'] = column