我想在pandas dataFrame
中的特定单元格中设置一个值。
我知道该行所处的位置(例如,我甚至可以使用df.iloc[i]
来获取行),并且我知道列的名称,但我无法确定如何选择单元格,以便我可以为它设置一个值。
df.loc[i,'columnName']=val
不起作用,因为我希望行位于i
,而不是标记为索引i
。还
df.iloc[i, 'columnName'] = val
显然不喜欢被赋予列名。所以,如果没有转换成字典和背面,我该怎么做呢?非常感谢,因为我在pandas
文档中找不到任何可以帮助我的内容。
答案 0 :(得分:2)
您可以使用ix
设置特定的单元格:
In [209]:
df = pd.DataFrame(np.random.randn(5,3), columns=list('abc'))
df
Out[209]:
a b c
0 1.366340 1.643899 -0.264142
1 0.052825 0.363385 0.024520
2 0.526718 -0.230459 1.481025
3 1.068833 -0.558976 0.812986
4 0.208232 0.405090 0.704971
In [210]:
df.ix[1,'b'] = 0
df
Out[210]:
a b c
0 1.366340 1.643899 -0.264142
1 0.052825 0.000000 0.024520
2 0.526718 -0.230459 1.481025
3 1.068833 -0.558976 0.812986
4 0.208232 0.405090 0.704971
您也可以在感兴趣的字段上致电iloc
:
In [211]:
df['b'].iloc[2] = 0
df
Out[211]:
a b c
0 1.366340 1.643899 -0.264142
1 0.052825 0.000000 0.024520
2 0.526718 0.000000 1.481025
3 1.068833 -0.558976 0.812986
4 0.208232 0.405090 0.704971
答案 1 :(得分:1)
您可以使用get_loc:
获取列的位置df.iloc[i, df.columns.get_loc('columnName')] = val