我基本上是从R迁移到Python。我想根据列对我的数据框进行子集化。在经历堆栈溢出answer时,我找到了解决方案。
但请考虑以下代码:
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 :(得分:1)
我自己在学习大熊猫,所以请原谅那些不深入的答案。 .loc有一个'location'功能,允许你在R中的数据帧DF [1,3]中记下一个位置。或者允许你输入两个网格坐标,否则你只能有一个参数。
现在我错了,因为我看过大熊猫已经有一段时间了,正如我所提到的,我也只是在学习它。
它在网站上列为索引功能 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html
答案 1 :(得分:1)
loc方法提供对数据帧的直接访问,允许分配到数据帧的特定位置。这与生成数据帧的请求部分的副本的ix方法或括号表示法形成对比。结果是您无法通过这些方法对数据帧进行分配。 iloc方法与loc具有相同的特征。