我想非常简单地基于不同的列值在df中调用一列。
下面是我要使用的方法,但是如何在此之上添加另一种方法,即在名为分钟或 df ['minutes'] 的列中提供所有值如果另一个名为 column_name 的值是特定值?
df.loc[df['column_name'] == some_value]
样本数据:
column_name | Minutes
1-5 19
6-10 22
11-15 8
1-5 11
6-10 33
我要过滤column_name =该列中的任何值,并返回分钟列下的所有值。
因此,如果column_name为1-5,则返回“分钟”列中的所有值
答案 0 :(得分:2)
DataFrame通常包含多个行(和列)。
因此,如果您询问特定列(例如 xx )是否具有某些值:
self
您将获得具有以下内容的布尔系列:
所以我假设您质疑给定列中的特定值 实际上应表示为:此列中的 any 个元素 有特殊价值吗?。
您可以使用 any()函数对其进行检查:
included
这次,结果将是单 布尔值。
您可以写:
df.xx == 20
当然可以质疑如果不可以的话? 您是否要在 result 变量中的另一个列?
另一种方法是在某些变量中设置列名, 根据您的某些逻辑说出 src_col 。
然后,设置此变量,您可以将所需的列引用为:
(df.xx == 22).any()
请注意,这次:
因此目标列名称由该变量的值表示。
以及 Chris90 关于评论的评论:
如果您写 df.loc [df ['column_name'] =='1-5','Minutes'] 您将从以下位置获得单个值:
但是您写道,您希望从此列中所有值。
答案 1 :(得分:1)
您是否希望返回的值比数据框或序列之类的东西更简单:
[19,11]
这个?
然后使用如下所示的tolist()方法:
df.loc[df['column_name'] == "1-5"]["Minutes"].tolist()