如何将指定格式数据转为Pandas DataFrame并筛选年龄大于50的key
使用Pandas筛选age大于50的key值
没问题!用Pandas来实现这个需求其实很直观,我给你一步步拆解具体做法:
步骤1:处理原始字符串,转换成Pandas可识别的结构
你的原始数据是一串连续的键值对字符串,咱们需要先把它拆分成每个key和对应的age配对,整理成字典列表的形式,这样才能方便创建DataFrame。
步骤2:编写代码实现筛选
直接上完整代码,每一步都有注释说明:
import pandas as pd # 你的原始数据字符串 raw_data = 'key=IAfpK, age=58, key=WNVdi, age=64, key=jp9zt, age=47, key=0Sr4C, age=68, key=CGEqo, age=76, key=IxKVQ, age=79, key=eD221, age=29, key=XZbHV, age=32, key=k1SN5, age=88, key=4SCsU, age=65, key=q3kG6, age=33, key=MGQpf, age=13, key=Kj6xW, age=14, key=tg2VM, age=30, key=WSnCU, age=24, key=f1Vvz, age=46, key=dOS7A, age=72, key=tDojg, age=82, key=nZyJA, age=48, key=R8JTk, age=29, key=005Ot, age=66, key=HHROm, age=12, key=5yzG8, age=51, key=xMJ5D, age=38, key=TXtVu, age=82, key=Hz38B, age=84' # 1. 拆分字符串为单个键值对列表:['key=IAfpK', 'age=58', ...] key_value_pairs = raw_data.split(', ') # 2. 把每个键值对拆成[键, 值]的形式:[['key', 'IAfpK'], ['age', '58'], ...] split_pairs = [pair.split('=') for pair in key_value_pairs] # 3. 每两个元素组成一组(一个key对应一个age),转换成字典列表 record_list = [] for i in range(0, len(split_pairs), 2): record = { 'key': split_pairs[i][1], 'age': int(split_pairs[i+1][1]) # 把age转成整数类型,方便后续数值筛选 } record_list.append(record) # 4. 创建DataFrame df = pd.DataFrame(record_list) # 5. 筛选age大于50的记录,提取key列并转成列表 filtered_keys = df[df['age'] > 50]['key'].tolist() # 输出结果 print("age大于50的key值:", filtered_keys)
运行结果
执行代码后会得到符合条件的key列表:
['IAfpK', 'WNVdi', '0Sr4C', 'CGEqo', 'IxKVQ', 'k1SN5', '4SCsU', 'dOS7A', 'tDojg', '005Ot', '5yzG8', 'TXtVu', 'Hz38B']
补充说明
- 把
age转成整数类型是关键,这样才能正确进行数值比较筛选; - 使用Pandas的布尔索引
df[df['age'] > 50]可以快速过滤出符合条件的行,再提取key列就完成了需求。
内容的提问来源于stack exchange,提问作者madhu reddy
相关产品推荐
相关产品推荐

