python - 根据不同的列值调用列名?
问题描述
我想非常简单地根据不同的列值调用 df 中的列。
下面是我将使用的内容,但是如果另一个名为column_name的列是特定值,我该如何在此之上添加另一种方法,即给我一个名为 minutes 或df['minutes']的列中的所有值?
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,则返回 Minutes 列中的所有值
解决方案
一个 DataFrame 通常包含多行(和多列)。
因此,如果您询问特定列(例如xx)是否具有某些价值:
df.xx == 20
你会得到一个布尔系列:
- 从df复制的索引,
- 说明此行中的xx列是否== 20的值。
因此,我假设您对给定列中特定值的质疑实际上应该表示为:此列中的任何元素是否具有特定值?.
您可以使用any()函数检查它:
(df.xx == 22).any()
这次结果将是一个布尔 值。
在你的情况下,你可以写:
if (df.column_name == '1-5').any():
result = df.Minutes
当然,如果没有怎么办?您想要结果变量中的另一列吗?
另一种方法是根据您的一些逻辑在某个变量中设置列名,例如src_col。
然后,设置此变量后,您可以将所需的列称为:
result = df[src_col]
请注意,这一次:
- 列名在括号之间,
- 但它没有被撇号包围,
所以目标列名由这个变量的值表示。
以及关于Chris90评论的评论:
如果你写df.loc[df['column_name'] == '1-5','Minutes'] 你会得到一个值:
- column_name中包含1-5 ( string ) 的行,
- 分钟列。
但是您写道,您想要此列中的所有值。
推荐阅读
- python - 在 python 上写入 CSV 文件的问题
- python - PHP加密和解密函数到python
- javascript - 来自现有数组的表单中的 React Dropdown
- powershell - Microsoft Teams:将成员从一个 Teams 组迁移到另一个
- php - 使用 handler.postDelayed (Android) 创建实时应用程序?
- jmeter - 在高斯分布中生成http请求
- python - 使用 python 从 FQDN 获取 url
- python - python 3中的EOL是什么意思?
- reactjs - React Hook "useState" 在函数 "deviceStatus" 中被调用,它既不是 React 函数组件也不是自定义 React
- python - boost python 3.7:来自 cpp 和 python 的打印顺序错误