复制行并更改列值(python vaex)

2024-04-20 04:00:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个数据框

dataframe

我想复制(day_of_year == 140)的所有行,这些重复行将day_of_year列替换为148

也就是说,复制行,同时替换day_of_year列,并给出值148

我用的是vaex

有人能帮我吗


Tags: of数据dataframeyearday行将vaex
1条回答
网友
1楼 · 发布于 2024-04-20 04:00:45

让我们从一些虚假数据开始:

>>> 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中数据被认为是不可变的

>>> 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

相关问题 更多 >