python dataframe筛选列表的值转为list【常用】

该博客内容为转载自博客园的‘逆向小白’相关内容,但未给出更多关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

### 如何用 Pandas 在 Python 中根据条件或索引提取 DataFrame 的行 在 Pandas 库中,可以通过布尔索引、`loc` 和 `iloc` 方法等多种方式实现基于条件或索引来提取 DataFrame 的特定行。 #### 使用布尔索引筛选符合条件的行 通过定义逻辑条件表达式可以直接筛选出满足条件的行。例如,在给定的示例代码中: ```python import pandas as pd df = pd.DataFrame({ 'BoolCol': [1, 2, 3, 3, 4], 'attr': [22, 33, 22, 44, 66] }, index=[10, 20, 30, 40, 50]) a = df[(df.BoolCol == 3) & (df.attr == 22)].index.tolist() print(a) ``` 上述代码实现了对 `BoolCol` 列等于 3 并且 `attr` 列等于 22 的行进行筛选,并返回这些行对应的索引列表[^1]。 #### 使用 `.loc[]` 基于标签索引提取行 如果需要更精确地控制哪些行被选中,则可以使用 `.loc[]` 方法。`.loc[]` 支持按照行索引标签或者列名来进行选择。例如: ```python selected_rows = df.loc[df['BoolCol'] > 2] print(selected_rows) ``` 这选择了所有 `BoolCol` 列大于 2 的行[^4]。 #### 修改索引数据类型的场景 当需要调整当前 DataFrame 索引的数据类型时,可先将其转换为目标类型再重新设定为索引。比如下面的例子展示了如何将字符串形式的名字作为新的整数型 ID 设置成索引[^2]: ```python df.reset_index(inplace=True) df['Name_ID'] = pd.to_numeric(df['Name'].str.extract(r'(\d+)'), errors='coerce') df.set_index('Name_ID', inplace=True) print(df) ``` 此操作会尝试从名字字段解析出数字部分并转为型新索引。 #### 按照自定义区间划分 dataframe 对于具有连续编号作为默认索引的情况,有时希望按照一定规律拆分成多个子集。虽然 groupby 不完全适用于这种需求,但借助辅助列仍能完成任务[^3] : ```python maxmin_all_locations["group"] = maxmin_all_locations.groupby((maxmin_all_locations.index // 9)).ngroup() groups = {g: d for g, d in maxmin_all_locations.groupby("group")} for key, value in groups.items(): print(f"Group {key}: \n{value}\n") ``` 这段脚本利用了 floor division 来计算每个原始记录所属的大组号,进而形成分组依据。 --- ### 总结 以上介绍了几种常见的方法用于从 Pandas DataFrames 中抽取所需行的技术手段,包括但不限于简单的布尔掩码应用以及更为复杂的多重标准联合判定过程;同时也探讨了一些特殊情形下的变换技巧如更改现有次序类别或是分割整个表结构成为若干片段等问题解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值