如何从 Pandas 数据帧中提取单元格

9

假设我创建了一个 pandas 数据框(我对 pandas 不是很熟悉,这种方法可能不太高效):

import pandas as pd
colnames = ['a', 'b']
data = pd.DataFrame(columns=colnames)
df_row = ['val1', 'val2']
app = pd.Series(df_row, index=cols)
data = data.append(app, ignore_index=True)

我希望您能将"val1"作为字符串而不是"pandas"对象进行访问。如果我这样做:
cell = data.iloc[[0],[0]]
type(cell)

我看到cell的类型是<class 'pandas.core.frame.DataFrame'>

如果我接下来执行:

type(cell[`a'])

我看到它是<class 'pandas.core.series.Series'>

如何将val1作为str对象获取,而不是pandas对象?


1
这个话题有些偏离,但是你代码中最后三行将行添加到 data 的部分可以简单地替换为 data.loc[0] = 'val1', 'val2' - JoeCondron
@JoeCondron,很遗憾这对我不起作用。 - bill999
我更新了我的 pandas 版本,现在它运行起来非常顺畅! - bill999
3个回答

9
您需要注意的问题是,您正在向 iloc 传递列表,而应该传递普通整数 0,0iloc 来获得所需的结果。
In [85]: data.iloc[0,0]
Out[85]: 'val1'

4

对于基于整数的索引,在DataFrame(或Series)中获取特定单元格,iat通常是最有效的方法:

>>> data.iat[0, 0]
'val1'

2
为了将DataFrame中的值作为字符串访问:
cell = str(data.iloc[0,0])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接