2024-04-20 04:00:45 发布
网友
我有这个数据框
dataframe
我想复制(day_of_year == 140)的所有行,这些重复行将day_of_year列替换为148
day_of_year == 140
day_of_year
也就是说,复制行,同时替换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行的过滤数据帧,并用不同的值替换它们。注意,我们没有赋值,而是使用where,因为在Vaex中数据被认为是不可变的
x==140
>>> 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值,它不会更改
现在我们只需要concatenate他们:
>>> 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
让我们从一些虚假数据开始:
现在,我们生成只包含
x==140
行的过滤数据帧,并用不同的值替换它们。注意,我们没有赋值,而是使用where,因为在Vaex中数据被认为是不可变的请注意,虚拟列y仍在使用以前的x值,它不会更改
现在我们只需要concatenate他们:
相关问题 更多 >
编程相关推荐