根据特定列将pandas数据框列替换为另一个数据框

天师

我有两个具有许多列df1,df2的数据帧,并且我想用时间值相同的df2列中的数据替换所有df1值(时间列除外):

df1:

index time   x y   ......many other columns ( the same as df2)
0       1    1 1
1       1.1  2 2
2       1.1  3 3
3       1.1  4 4
4       1.4  5 5
5       1.5  6 6
6       1.5  7 7


df2:

index time  x   y   ....many other columns (the same as df1)
0       1   10  10
1       1.1 11  11
2       1.2 12  12
3       1.3 13  13
4       1.4 14  14
5       1.5 15  15
6       1.6 16  16



the result for df1 should be:

index time  x   y   ....many other columns 
0       1    10 10
1       1.1  11 11
2       1.1  11 11
3       1.1  11 11
4       1.4  14 14
5       1.5  15 15
6       1.5  15 15


人妖

我认为我能够使自己的思想井井有条,并希望能找到适合您的解决方案。

试试这个,您可以使用combine_first进行一些调整来得到答案

  1. combine_first从另一个值中填充空值dataframe,因此首先您可以将所有值(“时间”列中的值除外)替换为np.nan请注意,我将“时间”列用作index

  2. 正如combine_first将返回两个数据帧的并集一样,您可以使用isin来从df1最终输出中仅获取时间值

import numpy as np
import pandas as pd

df1[df1.columns.difference(['time'])] = np.nan
res = df1.set_index('time').combine_first(df2.set_index('time')).reset_index()
li = [i for i in df1['time'].unique()]

final= res[res['time'].isin(li)]

这将使您:

   time     x     y
0   1.0  10.0  10.0
1   1.1  11.0  11.0
2   1.1  11.0  11.0
3   1.1  11.0  11.0
6   1.4  14.0  14.0
7   1.5  15.0  15.0
8   1.5  15.0  15.0

在您的实际数据集上尝试一下,让我知道它是否有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将数据框多个列替换为另一个数据框的ID

根据条件用另一个数据框替换数据框列 - R

Python Pandas根据在另一个数据框中的查找将列添加到数据框

根据另一个数据框的列值替换两个数据框列的值

pandas - 通过最新匹配的列条目将数据框中的行替换为另一个数据框的行

Pandas - 根据另一个填充一个数据框列

根据条件,将数据框的某些值替换为另一个数据框中的值

熊猫:根据条件将数据框中的值替换为另一个数据框中的值

使用Pandas Python将NaN值替换为另一个数据框

将一个数据框中的特定列(包含)除以另一个数据框

根据另一个数据框的索引替换所有列值

根据另一个数据框python熊猫替换列值-更好的方法?

根据另一个数据框替换列中的值

根据来自另一个数据框的转换表替换列中的字符

根据名称匹配用另一个数据框替换列

pandas:如果该值在第二个数据框中,则根据另一个数据框中的条件替换列中的值

将列的值与另一个数据框列匹配并替换值

根据Pandas中的ID将列值从一个数据框复制到另一个数据框

如何用另一个数据框列替换数据框列

根据另一个数据框列更新数据框列,无需 for 循环

根据另一个数据框的列填充熊猫数据框列

根据另一个数据框的列对数据框列进行排序

根据另一个数据框中的相同列组合替换数据框中的 NA

根据另一个数据框中的匹配ID替换数据框列值

根据另一个数据框的索引和列,用NaN替换数据框单元格

如何根据另一个数据框条件替换数据框列中的值

从另一个数据框中的列值替换pandas数据框中的列值

根据条件将数据框中的列除以另一个数据框的列的值?

Python Pandas:根据另一个数据框的类别值创建新列