【发布时间】:2012-11-30 07:04:17
【问题描述】:
我创建了一个 Pandas 数据框
df = DataFrame(index=['A','B','C'], columns=['x','y'])
得到了这个
xy 南南 B 南南 C 南 南现在,我想为特定单元格分配一个值,例如行C 和列x。
我希望得到这个结果:
使用此代码:
df.xs('C')['x'] = 10
但是,df 的内容并没有改变。数据框再次只包含NaNs。
有什么建议吗?
【问题讨论】:
-
不要使用“链式索引”(
df['x']['C']),使用df.ix['x','C']。 -
索引访问的顺序需要是:
dataframe[column (series)] [row (Series index)],而很多人(包括我自己)更习惯dataframe[row][column]的顺序。作为一名 Matlab 和 R 程序员,后者对我来说感觉更直观,但这显然不是 Pandas 的工作方式.. -
我试过了,但我最终添加了另一个行名 x 和另一个列名 C。你必须先做行然后列。所以 df.ix['C','x']=10
-
致@Yariv 的评论。警告:从 0.20.0 开始,不推荐使用 .ix 索引器,取而代之的是更严格的 .iloc 和 .loc 索引器。 pandas.pydata.org/pandas-docs/stable/generated/… 。 df.at 看起来好像还在附近。
-
如果您需要使用索引值更改整个数据帧子集的值,请务必检查(并支持取消挖掘)Atta Jutt 的回答。
标签: python pandas dataframe cell nan