Pandas 熊猫中的切片和设置值,位置和标签的组合
我想在数据帧中的特定单元格中设置一个值 我知道行在哪个位置(例如,我甚至可以通过使用Pandas 熊猫中的切片和设置值,位置和标签的组合,pandas,Pandas,我想在数据帧中的特定单元格中设置一个值 我知道行在哪个位置(例如,我甚至可以通过使用df.iloc[I]获得行),我知道列的名称,但我无法确定如何选择单元格,以便为其设置值 df.loc[i,'columnName']=val 无法工作,因为我希望行位于位置I,而不是用索引I标记。也 df.iloc[i, 'columnName'] = val 显然,他不喜欢别人给他起一个列名。那么,除了转换成dict和back之外,我该怎么做呢?非常感谢您的帮助,因为我在pandas文档中找不到任何帮助。
df.iloc[I]
获得行),我知道列的名称,但我无法确定如何选择单元格,以便为其设置值
df.loc[i,'columnName']=val
无法工作,因为我希望行位于位置I
,而不是用索引I
标记。也
df.iloc[i, 'columnName'] = val
显然,他不喜欢别人给他起一个列名。那么,除了转换成dict和back之外,我该怎么做呢?非常感谢您的帮助,因为我在
pandas
文档中找不到任何帮助。您可以使用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
您可以使用get_loc获取柱的位置:
df.iloc[i, df.columns.get_loc('columnName')] = val
试试
df.ix[i,'columnName']=val
给出了一个关键错误i
,我想是因为i
不在索引标签中?这应该不会失败,试试df['columnName'].iloc[i]=val
ix
在索引为整数时查找标签而不是位置。是的,非常有效,谢谢!