如何在 vaex 数据框中访问特定单元格?
how can a specific cell be accessed in a vaex data frame?
vaex 是一个类似于 pandas 的库,它提供了一个数据框 class
我正在寻找一种按行和列访问特定单元格的方法
例如:
import vaex
df = vaex.from_dict({'a': [1,2,3], 'b': [4,5,6]})
df.a[0] # this works in pandas but not in vaex
在这种特定情况下,您可以 df.a.values[0]
,但如果这是一个虚拟列,则会导致对整个列进行评估。做什么会更快(比如在 > 1 十亿行和一个虚拟列的情况下):
df['r'] = df.a + df.b
df.evaluate('r', i1=2, i2=3)[0]
这将评估虚拟 column/expression r
,从第 2 行到第 3 行(长度为 1 的数组),并获取第一个元素。
这很笨拙,并且有一个未解决的问题:https://github.com/vaexio/vaex/issues/238
也许您对 vaex 没有 'basic' 这样的东西感到惊讶,但是 vaex 通常用于非常大的数据集,您不会经常访问单独的行,所以我们不会运行 很喜欢这个。
@Maarten Breddels 是 Vaex 的所有者,所以我相信他的话。但他有可能在 Vaex 添加切片之前写下了这个答案,在这种情况下,它会像描述的那样“笨拙”得多。
import vaex
df = vaex.example()
df.x[:1].values # Access row 0
df.x[1:3].values # Access rows 1 and 2
vaex 是一个类似于 pandas 的库,它提供了一个数据框 class 我正在寻找一种按行和列访问特定单元格的方法
例如:
import vaex
df = vaex.from_dict({'a': [1,2,3], 'b': [4,5,6]})
df.a[0] # this works in pandas but not in vaex
在这种特定情况下,您可以 df.a.values[0]
,但如果这是一个虚拟列,则会导致对整个列进行评估。做什么会更快(比如在 > 1 十亿行和一个虚拟列的情况下):
df['r'] = df.a + df.b
df.evaluate('r', i1=2, i2=3)[0]
这将评估虚拟 column/expression r
,从第 2 行到第 3 行(长度为 1 的数组),并获取第一个元素。
这很笨拙,并且有一个未解决的问题:https://github.com/vaexio/vaex/issues/238
也许您对 vaex 没有 'basic' 这样的东西感到惊讶,但是 vaex 通常用于非常大的数据集,您不会经常访问单独的行,所以我们不会运行 很喜欢这个。
@Maarten Breddels 是 Vaex 的所有者,所以我相信他的话。但他有可能在 Vaex 添加切片之前写下了这个答案,在这种情况下,它会像描述的那样“笨拙”得多。
import vaex
df = vaex.example()
df.x[:1].values # Access row 0
df.x[1:3].values # Access rows 1 and 2