【发布时间】:2018-04-24 15:22:33
【问题描述】:
我有这个数据框熊猫对象
df = pd.DataFrame(randn(5,4),['A','B','C','D','E'],['W','X','Y','Z'])
我执行,这是行表 A, B, C, D, E 和 W, X, Y, Z 列
W, X, Y, Z 中的每一列都是 Pandas 系列,W 是 Pandas 系列,X 和 Y 和 Z,它们都共享一个公共索引。
这基本上是一个数据框,一个共享索引的系列集。
直到这里没关系。 :)
我可以通过这种方式抓取W列大于0的所有数据值:
注意C行消失了
但我不明白以下内容:
这句话是什么意思?
df[df['W']>0][['Y','X']]
结果是这样的:
理论上,我正在抓取所有大于 0 的数据框 W 列值,并且我提前根据什么标准或条件返回 Y 和 X 列?
为什么我在Y 和X 列上获取这些值?
目前,我正在研究 Pandas,我想知道这种行为的原因。
【问题讨论】:
-
df[df['W']>0][['Y','X']] 当W大于0时,得到Y和X的列
-
df[df['W']>0]在应用过滤条件后返回一个数据框。然后["Y", "X"]访问该DataFrame 的Y和X列。 -
进行此选择的“正确”或惯用方式是使用 .loc,
df.loc[df['W']>0,['Y','X']] -
@ScottBoston 使用 .loc 进行选择操作时是否与性能或内存有关?
-
@bgarcial 通常,您应该从链接选择中重新构建框架。要发现链接查找']['。 pandas.pydata.org/pandas-docs/stable/…
标签: python pandas dataframe data-science