如何按ID首字符将数据集拆分为u开头、s开头的两个独立数据集
按ID首字符拆分数据集实现方法
你用Python最常用的表格处理库pandas就能轻松完成这个需求,具体操作步骤如下:
- 第一步:安装pandas(如果还没安装,执行以下命令)
pip install pandas - 第二步:导入库并读取数据集,如果你已经把数据存为csv格式,直接按路径读取即可:
import pandas as pd # 替换引号里的内容为你自己的文件实际路径 df = pd.read_csv("你的文件路径.csv")
如果是直接用你给出的样本做测试,也可以直接构造DataFrame:
import pandas as pd data = [ ["u123456", 10.00, 0.00, 21], ["s123457", 6.80, 9.40, 30], ["u123458", 13.35, 20.00, 25], ["u123459", 0.00, 10.15, 24], ["u123460", 4.50, 8.09, 21], ["u123461", 5.50, 13.30, 14], ["u123462", 20.00, 12.75, 16], ["s123463", 20.00, 17.50, 22], ["u123464", 11.75, 17.30, 31], ["s123465", 0.00, 12.65, 15] ] df = pd.DataFrame(data, columns=["ID", "A1", "A2", "Exam"])
- 第三步:按ID首字符拆分,用pandas自带的字符串匹配方法即可:
# 分组1:ID以u开头的数据集 group_u = df[df["ID"].str.startswith("u")] # 分组2:ID以s开头的数据集 group_s = df[df["ID"].str.startswith("s")]
代码逻辑说明:df["ID"].str.startswith("u")会返回一串布尔值,ID首字符为u的对应位置是True,否则是False,把这串布尔值放进df的方括号里,就能筛选出所有对应为True的行。
- 可选操作:如果需要把拆分后的两个数据集单独保存为文件,执行以下代码:
# index=False的作用是不把原始的行号写入文件,不需要可以去掉这个参数 group_u.to_csv("u开头的数据集.csv", index=False) group_s.to_csv("s开头的数据集.csv", index=False)
内容的提问来源于stack exchange,提问作者Mahbub Abdullah
相关产品推荐
相关产品推荐

