python - 如何仅选择数值数据类型并将它们保存在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])
解决方案
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
.
推荐阅读
- angular - Angular - 设置父组件的 .m-content 样式
- javascript - JS 数组映射,groupBy 键
- android - 如何暂停倒计时?
- python - LOOP 使用 python 抓取时
- testing - 测试失败时的 Helm 部署状态
- symfony - Symfony 3 - 从服务中访问教义
- java - JBoss Eclipselink 没有在 postgresql 中的 create-tables / create-or-extend-tables 上创建索引
- amazon-ec2 - Gmail smtp 在 AWS EC2 实例中不起作用
- git - git tag 如何为工件名称添加更多含义?
- python - '在未引用的字段中看到换行符'-尝试在 Python 中写入 csv 文件时出错