如何解决复制行并更改列值python vaex
我有这个数据框
我想复制(day_of_year == 140
)的所有行,这些重复的行用148取代了day_of_year
列。
也就是说,复制行,并同时替换day_of_year列并给出值148
我正在使用vaex
有人可以帮我吗?
解决方法
让我们从一些虚假数据开始
>>> import vaex
>>> import numpy as np
>>> x = [0,1,2,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中是不变的,因此我们不分配,而是使用where。
>>> 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。