pandas使用itertuples编辑单元格值

时间:2016-11-10 20:54:18

标签: python loops pandas iterate

我想加速我的代码,所以我不喜欢使用double来: 我的代码:

    for c in range(0, n-1):
        for l in range(0,n-c-1):
            df2.ix[l,c]=C_back(l,c,df)

我想用

for x in df.itertuples():

但我不知道如何修改特定的单元格值。 感谢

2 个答案:

答案 0 :(得分:2)

使用stack

for mytuple, value in df.stack().iteritems():
    print(mytuple, value)

考虑df

df = pd.DataFrame(np.arange(9).reshape(-1, 3), list('ABC'), list('XYZ'))
df

enter image description here

for mytuple, value in df.stack().iteritems():
    print(mytuple, value)

('A', 'X') 0
('A', 'Y') 1
('A', 'Z') 2
('B', 'X') 3
('B', 'Y') 4
('B', 'Z') 5
('C', 'X') 6
('C', 'Y') 7
('C', 'Z') 8

设置df

的值
for (i, j), value in df.stack().iteritems():
    df.set_value(i, j, value ** 2)

df

enter image description here

答案 1 :(得分:0)

使用重复项:

        for each in dt.itertuples():
            dt.loc[each.Index, 'column'] = value