Python мне ничего не показывает - PullRequest
0 голосов
/ 21 октября 2018

Я использую Pandas и NumPy для расчетов

Это мой код:

import pandas as pd
import numpy as np

imp = pd.read_csv("test.txt", sep=' ', )

imp_vert = imp.iloc[:, 2:].astype(float).replace(0, np.nan).mean()

print(round(imp_vert, 1))

Это мой test.txt

subject1 subject2
7 4
8 8
5 7
4 0

и результатis:

subject1    6
subject2    6,3
dtype: float64

Как удалить dtype: float64 из списка?

Спасибо за ваш совет.

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Я думаю, что самый "нормальный" способ доступа к значениям - это вызвать функцию .tolist():

print(round(imp_vert, 1).tolist())
# [4.5, 7.0]

После прочтения ваших комментариев, возможно, вам будет интереснее в формате словаря:

print(json.dumps(round(imp_vert, 1).to_dict(), indent=2))
#{
#  "subject1": 4.5,
#  "subject2": 7.0
#}

Или в формате csv:

print(round(imp_vert, 1).to_csv(sep=' '))
#subject1 4.5
#subject2 7.0

Настройка

import pandas as pd
import numpy as np
import json

with open("test.txt", "w") as f:
    f.write('''\
subject1 subject2
7 4
8 8
5 7
4 0''')

imp = pd.read_csv("test.txt", sep=' ', )

imp_vert = imp.iloc[2:, :].astype(float).replace(0, np.nan).mean()
0 голосов
/ 21 октября 2018

В этом случае вам нужен атрибут .values:

print(imp_vert.values)
print(round(imp_vert, 1).values)

ИЛИ

myarr = imp_vert.values
print(myarr)

Поскольку я не мог воспроизвести ваш dataFrame, следовательно, я 'Я приведу пример с этим в качестве примера, который может помочь вам!

>>> df1
      total
cat1  25.23
cat2   3.55
cat3  76.55
cat4  36.48
cat5  45.59

Когда вы делаете ниже, он возвращает dtype в конце, как у вас есть!

>>> np.round(df1['total'], 1)
cat1    25.2
cat2     3.6
cat3    76.6
cat4    36.5
cat5    45.6
Name: total, dtype: float64

Чтобы удалить это в конце, мы можем использовать лямбда-выражение, чтобы получить результат с applymap.

>>> df1.applymap(lambda x: round(x,1))
      total
cat1   25.2
cat2    3.5
cat3   76.5
cat4   36.5
cat5   45.6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...