2016-05-05 56 views
-2

我基本上是从R迁移到Python。我想基于列来对数据框进行子集化。当遇到堆栈溢出answer时,我找到了一个解决方案。熊猫数据框中.loc的用途

但考虑下面的代码:

import pandas as pd 
import numpy as np 
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(), 
        'B': 'one one two three two two one three'.split(), 
        'C': np.arange(8), 'D': np.arange(8) * 2}) 

df1 = df[df['A'] == "foo"] 
df1 
df2 = df.loc[df['A'] == "foo"] 
df2 

两个DF1和DF2是一样的。

所以我的问题是:首先要求loc功能是什么。请记住,我来自R背景和R,我们不必使用loc类型函数来对数据帧进行子集化。

+0

请阅读[本](http://pandas.pydata.org/pandas-docs/stable/indexing.html#different-choices-for-indexing)和[this](http://pandas.pydata。 org/pandas-docs/stable/indexing.html#indexing-view-versus-copy)如果您还有其他问题,请编辑您的问题 – EdChum

回答

1

我自己在学习熊猫,所以请原谅这个答案不是特别深入的。 .loc具有'位置'功能,允许您在R中的数据框DF [1,3]中记录一个位置,或者允许您放入两个网格坐标,否则只能有一个参数。

现在我可能会错,因为我已经看过熊猫一段时间了,正如我刚才提到的,我也只是在学习它。

它被列为索引功能的网站 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html

1

的LOC方法上给出的数据帧,允许分配给数据帧的特定位置的直接访问。这与生成数据帧的请求部分的副本的ix方法或括号表示形成对比。结果是,您无法通过这些方法分配数据帧。 iloc方法与loc具有相同的特征。