过滤后如何将新列从数组添加到 Vaex 数据框?

How to add new column from array to Vaex dataframe after filtered?

我有数据文件'for-filter.txt'

a,b,c,d
1,2,3,4
2,6,7,8
-1,2,3,4
4,5,5,5
-2,3,3,3

我正在做的Vaex代码

import vaex as vx 
import numpy as np
df_vaex = vx.from_csv('for-filter.txt')
df_filter = df_vaex[df_vaex['a'] > 0]
df_filter.head()
df_filter['e'] = np.repeat("value", 3)

我想将“e”列添加到 df_filter,但出现错误

Array is of length 3, while the length of the DataFrame is 3 due to the filtering, the (unfiltered) length is 5. 

我只关心长度为 3 的数据帧,因为我只是丢弃无用的行。但不知何故,Vaex 希望我的长度为 5。

pandas 中的类似代码应该 运行 符合预期

import pandas as pd
import numpy as np

df_pd = pd.read_csv('for-filter.txt')
df_filter_pd = df_pd[df_pd['a'] > 0]
df_filter_pd.head()
df_filter_pd.loc[:, "e"] = np.repeat("value", 3)

已解决

import vaex as vx 
import numpy as np
df_vaex = vx.from_csv('for-filter.txt')
df_filter = df_vaex[df_vaex['a'] > 0]
df_filter.head()
df_filter = df_filter.extract()  # add this line to make real dataframe from lazy indexing
df_filter['e'] = np.repeat("value", 3)