复制行并更改列值(python vaex)
我有这个数据框 我想复制所有(复制行并更改列值(python vaex),python,pandas,vaex,Python,Pandas,Vaex,我有这个数据框 我想复制所有(day\u of_year==140)行,这些重复行将day\u of_year列替换为148 也就是说,复制行,同时替换day_of_year列,并给出值148 我用的是vaex 有人能帮我吗?让我们从一些虚假数据开始: >>> import vaex >>> import numpy as np >>> x = [0, 1, 2, 140, 140, 140, 4, 4] >>> df =
day\u of_year==140
)行,这些重复行将day\u of_year
列替换为148
也就是说,复制行,同时替换day_of_year列,并给出值148
我用的是vaex
有人能帮我吗?让我们从一些虚假数据开始:
>>> import vaex
>>> import numpy as np
>>> x = [0, 1, 2, 140, 140, 140, 4, 4]
>>> df = vaex.from_arrays(x=x)
>>> df['y'] = df.x**2
>>> df
# x y
0 0 0
1 1 1
2 2 4
3 140 19600
4 140 19600
5 140 19600
6 4 16
7 4 16
现在,我们生成只包含x==140
的行的过滤数据帧,并用不同的值替换它们。注意,我们不赋值,而是使用,因为在Vaex中数据被认为是不可变的
>>> df_replace = df[df.x==140]
>>> df_replace['x'] = (df_replace.x==140).where(148, -1)
>>> df_replace
# x y
0 148 19600
1 148 19600
2 148 19600
请注意,虚拟列y仍在使用以前的x值,它不会更改
现在我们只需要向他们解释:
>>> df_new = df.concat(df_replace)
>>> df_new
# x y
0 0 0
1 1 1
2 2 4
3 140 19600
4 140 19600
... ... ...
6 4 16
7 4 16
8 148 19600
9 148 19600
10 148 19600