首页 > 解决方案 > 如何仅选择数值数据类型并将它们保存在python中的数组中?

问题描述

我想从 csv 中获取所有字段,这些字段是数字字段,并将这些字段存储在一个数组中,以便我可以执行数学运算。我可以获取数据类型但无法限制。我对python脚本很陌生,请帮忙

编辑:我添加了一个示例行

在此处输入图像描述

所以这里 F1 和 F3 是数字字段。所以我想将这两个字段名称保留在数组变量 FieldNames=["F1","F3"]

import csv
import pandas as pd
import numpy as np

data = pd.read_csv(r'C:\Users\spanda031\Downloads\test_19.csv')
print(data.dtypes)
with open(r'C:\Users\spanda031\Downloads\test_19.csv') as f:
    d_reader = csv.DictReader(f)

    #get fieldnames from DictReader object and store in list
    headers = d_reader.fieldnames
    print(headers)
    for line in headers:
        #print value in MyCol1 for each row
        print(line)        
        v3=np.array(data[line])

标签: pythonpython-3.xpython-2.7pandasnumpy

解决方案


select_dtypes

您可以使用np.number或,如文档中所示,'number'选择所有数字系列:

# read csv file
df = pd.read_csv('file.csv')

# subset dataframe to include only numeric columns
df = df.select_dtypes(include='number')

# get column labels in array
cols = df.columns.values

# extract NumPy array from dataframe
arr = df.values

请注意,不需要该csv模块,因为 Pandas 可以通过pd.read_csv.


推荐阅读