在Pandas DataFrame中返回原始数据类型的元素
我有一个数据表(DataFrame),里面有一列是整数(int
),另一列是浮点数(float
):
In [79]: data = pd.DataFrame(dict(a = np.arange(100), b = np.arange(100.1,200.0)))
In [80]: data.head()
Out[80]:
a b
0 0 100.1
1 1 101.1
2 2 102.1
3 3 103.1
4 4 104.1
我想要返回第三行的a列,并且希望它是一个整数。我需要用原生的Python整数,因为它需要是可哈希的。我尝试了以下几种方法,但都不行:
因为使用了.iloc,所以返回的结果被转换成了浮点数:
In [82]: data.iloc[3]['a']
Out[82]: 3.0 #
返回的是一个序列(Series):
In [85]: d.iloc[[3]]['a']
Out[85]:
3 3
Name: a, dtype: int64
这是我想要的结果,但看起来真的很麻烦:
In [88]: int(d.iloc[[3]]['a'].values)
Out[88]: 3
有没有更聪明的方法呢?
2 个回答
2
我觉得如果你先给列建立索引,然后再给行建立索引,你就能得到你想要的结果。
In [6]: data.iloc[3]['a']
Out[6]: 3.0
In [7]: data['a'].iloc[3]
Out[7]: 3
2
你可以直接使用 astype
来转换数据类型:
In [32]:
data.loc[3,'a'].astype(int)
Out[32]:
3