Python中文
首页
教程
问答
标签
搜索
登录
注册
索引Pandas数据帧:整数行,命名列
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>假设<code>df</code>是pandas数据帧。</p> <ul> <li><code>df.loc[]</code>只接受名称</li> <li><code>df.iloc[]</code>只接受整数(实际位置)</li> <li><code>df.ix[]</code>接受名称和整数:</li> </ul> <p>当引用行时,<code>df.ix[row_idx, ]</code>只希望被赋予名称。e、 g</p> <pre><code>df = pd.DataFrame({'a' : ['one', 'two', 'three','four', 'five', 'six'], '1' : np.arange(6)}) df = df.ix[2:6] print(df) 1 a 2 2 three 3 3 four 4 4 five 5 5 six df.ix[0, 'a'] </code></pre> <p>抛出一个错误,它不返回“2”。</p> <p>当引用列时,iloc优先使用整数,而不是名称。e、 g</p> <pre><code>df.ix[2, 1] </code></pre> <p>返回“3”,而不是2。(尽管<code>df.idx[2, '1']</code>确实返回<code>2</code>)。</p> <p>奇怪的是,我喜欢完全相反的功能。通常我的列名非常有意义,所以在我的代码中我直接引用它们。但是由于大量的观察清理,我的pandas数据帧中的行名通常与<code>range(len(df))</code>不对应。</p> <p>我知道我可以用:</p> <pre><code>df.iloc[0].loc['a'] # returns three </code></pre> <p>但看起来很难看!有没有人知道更好的方法,这样代码就会像这样?</p> <pre><code>df.foo[0, 'a'] # returns three </code></pre> <p>事实上,是否可以在我自己的新方法上添加到<code>pandas.core.frame.DataFrame</code>s,例如。 <code>df.idx(rows, cols)</code>实际上是<code>df.iloc[rows].loc[cols]</code>?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>这是一个迟来的答复,但是@unutbu的评论仍然有效,是解决这个问题的一个很好的办法。</p> <p>要使用整数行和命名列(标记列)索引数据帧,请执行以下操作:</p> <p><code>df.loc[df.index[#], 'NAME']</code>,其中<code>#</code>是有效的整数索引,<code>NAME</code>是列的名称。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
plt.savefig不会覆盖现有文件
9 回答
plt.savefig不保存图像
4 回答
plt.savefig在jupyter笔记本中不起作用
1 回答
plt.savefig在从另一个fi调用时停止工作
1 回答
plt.savefig在调用plt.show之前保存空数字
4 回答
plt.save不创建png文件
4 回答
plt.scatter overlay分类数据帧列
1 回答
Plt.Scatter:如何添加title、xlabel和ylab
1 回答
plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似
10 回答
plt.scatter错误'NoneType'对象在成功运行后没有属性'sqrt'
9 回答
plt.set_title()中的标题字符串有误
2 回答
plt.show()
2 回答
plt.show()不在Jupyter笔记本上渲染任何内容
7 回答
plt.show()不打印plt.plot only plt.scatter
2 回答
plt.show()不显示三维散射图像
3 回答
plt.show()不显示任何内容
9 回答
plt.show()不显示数据,而是保留它供下一个图表使用(spyder)
6 回答
plt.show()使终端挂起
3 回答
plt.show()无法使用此代码
5 回答
plt.show()没有打开新的图形风
6 回答