如何从pandas DataFrame中选取指定列构建矩阵
pandas选取DataFrame指定列构建矩阵实操
操作流程
- 第一步:导入pandas库,加载目标csv文件拿到DataFrame对象
import pandas as pd # 把路径替换成你本地存储similarity.csv的实际路径即可 df = pd.read_csv("similarity.csv")
- 第二步:选取需要的Count、Topic两列
直接通过列名列表索引就能拿到只包含目标列的子数据集,建议选完先打印前几行确认结果正确,避免列名不匹配报错:
# 传入列名组成的列表,批量选取多列 selected_cols = df[["Count", "Topic"]] # 打印前5行校验选取结果 print(selected_cols.head())
小提示:如果选列报错,先跑
print(df.columns)打印全量列名,检查是不是列名有大小写偏差、前后带空格的问题。
- 第三步:基于选中的两列构建目标矩阵
根据实际使用场景,最常见的矩阵构建有两类:- 构建可直接用于建模的二维数值特征矩阵
Topic列是文本类别的话,先转成数值编码,再和Count列拼接转成矩阵格式即可:
- 构建可直接用于建模的二维数值特征矩阵
# 把Topic列的文本类别转成数值编码 selected_cols["Topic_code"] = selected_cols["Topic"].astype("category").cat.codes # 转成numpy格式的二维矩阵 feature_matrix = selected_cols[["Count", "Topic_code"]].values # 打印矩阵维度和内容校验 print(f"矩阵维度:{feature_matrix.shape}") print(feature_matrix)
- 构建Topic与Count的交叉聚合矩阵
如果需要生成行索引为Topic、值为对应Count聚合结果的矩阵,用透视表实现即可,聚合规则可以按需调整:
# 按Topic分组,对Count做求和聚合,最后转成矩阵格式 agg_matrix = pd.pivot_table( selected_cols, values="Count", index="Topic", aggfunc="sum" # 要算均值就改成"mean",要计数就改成"count" ).values
内容的提问来源于stack exchange,提问作者Noob Coder
相关产品推荐
相关产品推荐

