pandas 根据列名索引多列数据_使用pandas实现筛选出指定列值所对应的行

在pandas中怎么样实现类似mysql查找语句的功能:

select * from table where column_name = some_value;

pandas中获取数据的有以下几种方法:

布尔索引

位置索引

标签索引

使用API

假设数据如下:

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})

布尔索引

该方法其实就是找出每一行中符合条件的真值(true value),如找出列A中所有值等于foo

df[df['A'] == 'foo'] # 判断等式是否成立

位置索引

使用iloc方法,根据索引的位置来查找数据的。这个例子需要先找出符合条件的行所在位置

mask = df['A'] == 'foo'

pos = np.flatnonzero(mask) # 返回的是array([0, 2, 4, 6, 7])

df.iloc[

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用 `pandas` 的 `loc` 方法来实现根据条件填写另一的值。具体步骤如下: 1. 使用条件语句筛选符合条件的,例如:`df.loc[df['列名'] == 条件, '要填充的列名'] = 填充值` 2. 将填充后的数据保存回原始数据框,例如:`df.to_csv('文件名.csv', index=False)` 下面是一个示例代码: ```python import pandas as pd # 读取数据 df = pd.read_csv('数据文件.csv') # 根据条件填写另一的值 df.loc[df['条件列名'] == '条件', '要填充的列名'] = '填充值' # 保存数据 df.to_csv('填充后的数据文件.csv', index=False) ``` 需要注意的是,这里的条件可以是多个条件的组合,例如:`df.loc[(df['1'] == 条件1) & (df['2'] == 条件2), '要填充的列名'] = 填充值`。 ### 回答2: 在使用pandas时,可以根据特定条件对DataFrame的某一填写。下面是一种常见的方法: 首先,我们需要导入pandas库: ```python import pandas as pd ``` 然后,创建一个包含需要处理的数据的DataFrame: ```python data = {'姓名': ['张三', '李四', '王五'], '年龄': [25, 30, 35], '性别': ['男', '女', '男']} df = pd.DataFrame(data) ``` 接下来,我们可以使用条件判断语句来选择需要填写的: ```python condition = df['年龄'] > 30 ``` 然后,我们可以使用.loc[]方法选择需要填写的,并根据条件给赋值: ```python df.loc[condition, '性别'] = '未知' ``` 最后,我们可以打印修改后的DataFrame查看结果: ```python print(df) ``` 运以上代码,将会得到以下结果: ``` 姓名 年龄 性别 0 张三 25 男 1 李四 30 女 2 王五 35 未知 ``` 从结果可以看到,当年龄大于30的条件满足时,对应的性别被填写为"未知"。 这就是使用pandas根据条件去填写另一列值的方法。有了这个方法,我们可以根据不同的条件对DataFrame的特定灵活的填写和修改。 ### 回答3: 使用Pandas根据条件填写另一的值可以通过使用.loc函数和布尔索引实现。 例如,假设我们有一个名为df的数据框,其包含两:'A'和'B'。我们想要基于'A'的值来填写'B'的新值。 我们可以使用.loc函数来选择满足条件的,并在选定的分配新值。具体步骤如下: 1. 导入pandas库:import pandas as pd 2. 创建数据框:df = pd.DataFrame({'A':[1, 2, 3, 4, 5], 'B':[0, 0, 0, 0, 0]}) 3. 使用.loc函数选择'A'大于2的,并在'B'分配新值: df.loc[df['A'] > 2, 'B'] = 1 这样,满足条件'A'大于2的将'B'的值更改为1。 4. 打印结果:print(df) 上述代码将输如下结果: A B 0 1 0 1 2 0 2 3 1 3 4 1 4 5 1 这里,我们使用.loc函数通过布尔索引选定了满足条件'A'大于2的,并在选定的将'B'的值设置为1。其他的值保持不变。 这是一种使用Pandas根据条件填写另一列值的简单方法。根据具体的条件和需求,我们可以使用不同的判断条件和赋值操作来实现更复杂的数据处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值