Python没有显示任何内容

时间:2018-10-21 09:45:22

标签: python pandas numpy

我正在使用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

结果是:

subject1    6
subject2    6,3
dtype: float64

如何从显示中删除dtype:float64?

谢谢您的建议。

2 个答案:

答案 0 :(得分:1)

在这种情况下,您需要.values属性:

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

OR

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

要在最后删除此代码,我们可以使用lambda exp将applymap赋值给结果。

>>> df1.applymap(lambda x: round(x,1))
      total
cat1   25.2
cat2    3.5
cat3   76.5
cat4   36.5
cat5   45.6

答案 1 :(得分:0)

我认为访问值的最“正常”方式是调用.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()