在Pandas DataFrame中返回原始数据类型的元素

2 投票
2 回答
1103 浏览
提问于 2025-04-18 08:31

我有一个数据表(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

撰写回答