Как выбрать только числовые типы данных и сохранить их в массиве на python? - PullRequest
0 голосов
/ 15 ноября 2018

Я хочу получить все поля из CSV, которые являются числовыми полями, и сохранить их в массиве, чтобы я мог выполнять математические операции.Я могу получить типы данных, но не могу ограничить.Я очень новичок в написании скриптов на Python, пожалуйста, помогите

Редактировать: я добавил одну строку образца

enter image description here

так что здесь 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])

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

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 может читать файлы CSV через pd.read_csv.

0 голосов
/ 15 ноября 2018

isdigit можно использовать для проверки наличия только числового значения в любом столбце данных в Python. Скажите, что имя столбца равно Measure, тогда вы можете написать

df['Measure_isdigit'] = map(lambda x: x.isdigit(), df['Measure'])

print df

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...