机器学习技术问询:如何根据输入列名动态提取CSV列并输出Numpy数组
解决方案:动态从CSV提取指定列的Numpy数组
我来帮你搞定这个动态提取列的问题!你的核心痛点是代码里写死了列相关的配置,没法根据用户输入灵活调整——咱们只需要做两处关键调整,就能实现通用的提取逻辑:
关键思路拆解
- 读取用户动态输入:用
input()获取CSV路径和目标列名,代替代码里写死的固定值 - 动态索引列数据:直接用输入的列名字符串去索引DataFrame,再转成Numpy数组
完整可运行代码
import pandas as pd # 获取用户输入的文件路径和目标列名 csv_file = input().strip() target_column = input().strip() # 读取CSV文件 df = pd.read_csv(csv_file) # 提取目标列并转为Numpy数组,这里用to_numpy()比.values更符合pandas新规范 result_array = df[target_column].to_numpy() # 按照示例格式输出 print(result_array)
测试验证
用你给出的示例场景测试:
第一行输入:
usercode/files/one.csv
第二行输入:a
输出结果为 [1 2];如果输入列名b,则输出[3 4],完美适配两种场景。
可选优化:增加异常处理
如果担心用户输入的列名不存在,可以加个简单的判断避免程序崩溃:
import pandas as pd csv_file = input().strip() target_column = input().strip() df = pd.read_csv(csv_file) if target_column not in df.columns: print(f"Error: 列名 {target_column} 不存在于当前CSV文件中") else: result_array = df[target_column].to_numpy() print(result_array)
内容的提问来源于stack exchange,提问作者spuckhafte
相关产品推荐
相关产品推荐

