当前位置: 首页 > 面试题库 >

单独打印列的原始值(以熊猫为单位)?

东门晓博
2023-03-14
问题内容

我有一个数据框:

df = pd.DataFrame([ { 'name': 'george', 'age': 23 }, {'name': 'anna', 'age': 26}])

现在我想找回乔治的年龄:

df[df.name == 'george'].age

但这会输出一些额外的信息以及原始值:

0    23
Name: age, dtype: int64

我该如何打印23


问题答案:

您可以使用loc+values转换Serienumpy array,然后通过[0]以下方式选择第一个值:

print (df.loc[df.name == 'george', 'age'].values)
[23]
print (df.loc[df.name == 'george', 'age'].values[0])
23

或直接选择Serieswith的第一个值iloc

print (df.loc[df.name == 'george', 'age'].iloc[0])
23

或通过iat以下方式选择第一项:

print (df.loc[df.name == 'george', 'age'].iat[0])
23

或使用Series.item

print (df.loc[df.name == 'george', 'age'].item())
23

如果可能没有匹配值,则上述解决方案将失败。

然后,可以使用nextiter招:

print (next(iter(df.loc[df.name == 'george', 'age']),'no match value'))
23

print (next(iter(df.loc[df.name == 'jano z hornej dolnej', 'age']),'no match value'))
no match value


 类似资料:
  • 首先,我对Python完全是新手,所以,也许是一些非常简单的事情我做得不对。 我正在读取一个多工作表xlsx文件,并将每个文件发送到单独的数据帧。(至少,我认为我正在这么做)。 这就是结果。 然后,我尝试打印每个df的一些列(手动尝试) 但我得到的只是: 正在显示任何值 如果我只调用,我会得到以下结果: 我做错了什么? 随着时间的推移,这是一项重大工作的一部分。我要做的就是过滤所有工作表的一些列,

  • 我有一个数据帧: 如何拆分该列,使每个值都在自己的列中? 我找到的唯一答案是关于将一列拆分成两列。如何将一列拆分成两列?

  • 问题内容: 我有一个清单清单: 我想要以下格式的输出: 我已经按照以下方式尝试过,但是输出的方式不是理想的: 输出: 在更改打印调用以代替使用时: 输出: 有任何想法吗? 问题答案: 遍历原始列表中的每个子列表,并在打印调用中使用以下命令将其解压缩: 默认情况下,分隔设置为,因此无需显式提供分隔。打印: 在您的方法中,您要遍历每个子列表中的每个元素,并分别进行打印。通过使用您在打印调用中 解压缩

  • 我有一个熊猫数据框,它看起来如下()。我希望将列的值转换为独立的列() 原始数据帧 转换数据帧 实现这一目标最方便的方法是什么?

  • 我有两个数据帧,是位置的位置,是站点的位置。我正试图找到一种更有效的方法来应用距离函数来查找在特定范围内的站点并返回站点名称。如果距离函数是纬度差,这是我的预期结果: 我有一个解决方案,使用笛卡尔产品/交叉连接在单个数据帧上应用一个函数。这个解决方案是可行的,但是我在一个真正的数据集中有数百万行,这使得笛卡尔产品非常慢。 我还尝试了使用的循环方法,但这比交叉连接方法慢。是否有一种更为通灵/高效的方

  • 问题内容: 我有一列时间戳,需要将其转换为期间(“月”)。例如 熊猫具有.to_period函数,但仅适用于时间戳索引,不适用于列。因此,您只能有一个期间索引,而不能有一个期间列? 并且只有在时间戳是唯一索引的情况下它才起作用。也就是说,如果时间戳记是multIndex的一部分,则.to_period()函数也不起作用。 熊猫似乎认为人们将始终使用时间戳和句点作为索引,但不会使用单个列,显然情况并